开发者

Can I use a conditional define in Xcode 4 using LLVM when running SenTest tests for an iOS project?

开发者 https://www.devze.com 2023-03-22 10:32 出处:网络
I\'ve found plenty of people using Xcode 3 to do this, but it no longer seems to work in Xcode 4. Or, it works partially…

I've found plenty of people using Xcode 3 to do this, but it no longer seems to work in Xcode 4. Or, it works partially…

I've added a preprocessor macro "TEST_TARGET" for Debug and Release under my Test target, and if I use #ifdef TEST_TARGET in the actual unit tests, that works as expected.

However, I really want to log some extra information from a source file that's just part of the main app when it's being run under unit tests (i.e. just a standard source file, not a unit test file). That source file doesn't appear to "see" the define. I've stepped through with the debugger, and the code within #ifdef is 开发者_JAVA技巧never executed.

Is there a way to tell my app is being run under a unit test target?


Here's how you can do it: you can test for something that's loaded when the tests are loaded, but not when they aren't.

For instance:

if (NSClassFromString(@"SenTest")) {
  NSLog(@"Extra info when running tests");
}

You could also add categories to your classes that are only present in the test target, which might also be helpful.

0

精彩评论

暂无评论...
验证码 换一张
取 消