我需要在自動運行單元測試時禁用日誌記錄,以便可以顯着提高測試速度(大約20s比0.374s,現在只有幾個測試,但是一個大的在測試代碼中循環)。如何在單元測試目標c代碼時禁用日誌記錄
我試圖在測試碼標頭中定義的宏,這樣的:
#define UNIT_TESTING
並且在該代碼被測試,我首先檢查諸如宏被定義:
#ifndef UNIT_TESTING
NSLog("whatever log");
#endif
但它似乎不工作,我猜如果這是因爲我沒有在測試代碼中導入測試代碼頭。我不能這樣做,因爲即使未進行單元測試,日誌也不會被打印。
我是比較新的目標c和來自Java背景,我想有一些錯誤的頭/宏定義。
還有一個問題,我是否需要爲單元測試定義一個宏,是不是已經有這樣的事情了?
請注意,不是每次測試'UNIT_TESTING'都需要記錄某些東西,您可以有條件地將[variadic macro](http://stackoverflow.com/q/679979/)定義爲'#define MYLOG(.. 。)(NSLog(__ VA_ARGS __))'或'#define MYLOG(...)'。而且,如果您使用日誌記錄打印調試信息,則應該使用交互式調試器;你將會對這個過程有更多的控制,這個問題就會消失。 – outis 2012-07-20 06:19:12
感謝您的提示。 – 2012-07-20 07:03:44