在开发 iOS 应用程序时,有什么方法可以通过编程方式确定您是在测试目标中运行代码还是在常规运行目标中运行代码?
我有检查这个变量是否为 nil 的技巧,因为它只在我的测试目标中,但这看起来很 hacky。
[[[NSProcessInfo processInfo] environment] objectForKey:@"XCInjectBundle"]
最佳答案
这些答案都没有真正帮助到我。我希望我的应用程序知道我何时运行测试,其唯一目的是限制测试目标中的日志记录。当我不记录一堆东西时,测试运行得更快。因此,我通过向方案的测试部分添加自定义参数来做到这一点:
在我的应用程序代码中,我现在可以检查我是否正在测试:
- (void)logError:(NSError*)error{
if([[[NSProcessInfo processInfo] arguments] containsObject:@"-FNTesting"])
return;
NSLog(@"LOG THE ERROR");
}
感谢@cameronspickert 是我唯一可以真正找到如何使用自定义参数的地方之一
http://cameronspickert.com/2014/02/18/custom-launch-arguments-and-environment-variables.html
关于ios - 以编程方式确定 iOS 项目中的当前目标(运行或测试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14271710/