단위 테스트를 실행할 때 로깅을 비활성화하려면 테스트 속도가 크게 향상 될 수 있도록 로깅을 비활성화해야합니다 (~ 20s vs 0.374s, 지금은 몇 가지 테스트 만 있지만 큰 테스트 코드의 루프). 단위 테스트 목적 C 코드
#define UNIT_TESTING
그리고 코드
테스트 할 내가 최초 매크로 정의되어 있는지 확인 :#ifndef UNIT_TESTING
NSLog("whatever log");
#endif
는 I는 다음과 같이, 테스트 코드 헤더 매크로를 정의하려 하지만 그것은 작동하지 않는 것 같아요, 만약 내가 테스트 코드의 테스트 코드 헤더를 가져 오지 않았기 때문입니다. 이것은 단위 테스트가 아닌 경우에도 로그가 인쇄되지 않기 때문에 수행 할 수 없습니다.
나는 비교적 객관적인 C이고 Java 배경에서 왔습니다. 헤더/매크로 정의에 문제가있는 것 같습니다.
또 하나의 질문은 단위 테스트를위한 매크로를 정의해야 할 필요가 있습니까?
무언가를 기록하고 싶을 때마다'UNIT_TESTING'을 테스트하는 대신 조건 적으로 [variadic 매크로] (http://stackoverflow.com/q/679979/)를 #define MYLOG (..define)로 정의 할 수 있습니다. .) (NSLog (__ VA_ARGS __))'또는'#define MYLOG (...)'를 사용하십시오. 또한 로깅을 사용하여 디버깅 정보를 인쇄하는 경우 대신 대화 형 디버거를 사용해야합니다. 당신은 프로세스에 대한 더 많은 제어권을 가지게 될 것이고이 문제는 사라질 것입니다. – outis
팁 주셔서 감사합니다. –