有没有办法以编程方式确定在开发iOS应用程序时是否在测试目标中运行代码与常规运行目标?
我有检查这个变量是否为零的黑客,因为它只在我的测试目标中,但这看起来非常hacky.
[[[NSProcessInfo processInfo] environment] objectForKey:@"XCInjectBundle"]
Run Code Online (Sandbox Code Playgroud)
小智 13
这些答案都没有真正帮助我.我希望我的应用程序知道我何时运行测试,其唯一目的是限制我的测试目标中的日志记录.当我没有记录一堆东西时,测试运行得更快.所以,我通过在我的方案的测试部分添加一个自定义参数来做到这一点:

在我的应用程序代码中,我现在可以检查我是否正在测试:
- (void)logError:(NSError*)error{
if([[[NSProcessInfo processInfo] arguments] containsObject:@"-FNTesting"])
return;
NSLog(@"LOG THE ERROR");
}
Run Code Online (Sandbox Code Playgroud)
感谢@cameronspickert成为我实际上可以找到如何使用自定义参数的唯一地方之一
http://cameronspickert.com/2014/02/18/custom-launch-arguments-and-environment-variables.html
Apu*_*urv 10
您应该在目标设置中为"预处理器宏"定义适当的值.
在运行时,您可以用ifdef句子检查它.
| 归档时间: |
|
| 查看次数: |
12931 次 |
| 最近记录: |