2009-11-12 4 views
0

은 내가 먼저 내 시나리오를 설명하자어떻게 내가 로깅에서 log4net을 중지 할

  1. 내가 NUnit를 약 30 초 소요 실행하는 약 2,000 테스트를 가지고
  2. 내가 원하는 ...
  3. 내가 개미 프로파일을 열 시간을내어 무엇을 발견하고는 NUnit과의 TestRunner를 프로파일에 도착, 나는 다음 테스트를 실행
  4. 의 TestRunner에 내 테스트 DLL을로드

그러나 프로파일 링 중에 테스트를 실행하면 로트이 길어집니다 (30 초가 아닌 모든 테스트를 실행하는 데 약 5 분 소요). 개미 프로파일 러 (Ants Profiler)에서 타이밍을 살펴볼 때 log4net이 많은 장소에서 호출되고있는 것 같아 시간이 많이 걸릴 것 같습니다.

그래서,이 질문은 :이 방법으로 테스트를 실행할 때 log4net 로깅 물건을 어떻게 중지합니까?

나는 3 개 설정 파일을 찾을 수 있습니다

테스트 DLL 폴더에서
  1. 는 config.log4net 파일이있다. < 레벨 값 = "OFF"/ >을 입력하고 모든 appender 섹션을 삭제했습니다.
  2. 테스트 러너 폴더에는 nunit.exe.config 및 nunit-console.exe.config 파일이 있습니다. 나는 그 둘 모두에 < 레벨 값 = "OFF"/ >을 넣었습니다.
  3. 개미 프로파일 러 폴더에서 재생할 설정 파일을 찾을 수 없습니다. 이것의

없음 내가 log4net 호출되는 볼 수있는 프로파일 결과를 통해보고, 작동하는 것 같다없고, 확실히 로깅 정보 출력 메소드를 호출합니다.

+0

대답은 로깅이 꺼져있는 모든 테스트 클래스에 대한 기본 클래스입니다. –

답변

2

테스트 설정에서 루트 로거를 가져 와서 로그 수준을 OFF로 설정하십시오.

+0

로그는 xml로 구성됩니다. 나는 이론적으로 설정 방법에서 레벨을 off로 설정할 수 있지만, 많은 비품 (그리고 많은 설정 방법)이 있습니다. 한 번 로거를 구성 할 수 있어야합니다. 여기서 제안하는 접근 방식은 구성을 변경하기 위해 테스트 프로젝트를 다시 컴파일해야한다는 것을 의미하며 모든 테스트 프로젝트는 수동으로 로깅을 해제해야합니다. 이 작업을 수행하는 간단한 방법이 있어야합니다. –

+0

Log4 *는 테스트 용으로 설계되지 않았습니다 :(내 솔루션은 모든 테스트에 대한 공통 기본 클래스를 가짐으로써 (추가로 몇 가지 추가 assert를 정의 함) 이러한 종류의 트릭을 수행 할 수 있습니다. –

+0

아, 버그 보고서를 엽니 다. log4j에 대해 하나 이상의 설정 파일을 읽을 수 있도록 허용 할 수 있습니다. log4j를 사용하여'-Dlog4j.configuration = log4j-null.xml'이라고 말하면서 제가 원하는 파일을 선택할 수 있습니다. –