ios - 以编程方式确定 iOS 项目中的当前目标(运行或测试)

标签 ios testing

在开发 iOS 应用程序时,有什么方法可以通过编程方式确定您是在测试目标中运行代码还是在常规运行目标中运行代码?

我有检查这个变量是否为 nil 的技巧,因为它只在我的测试目标中,但这看起来很 hacky。

[[[NSProcessInfo processInfo] environment] objectForKey:@"XCInjectBundle"]

最佳答案

这些答案都没有真正帮助到我。我希望我的应用程序知道我何时运行测试,其唯一目的是限制测试目标中的日志记录。当我不记录一堆东西时,测试运行得更快。因此,我通过向方案的测试部分添加自定义参数来做到这一点:

Scheme Screenshot

在我的应用程序代码中,我现在可以检查我是否正在测试:

- (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/

相关文章:

ios - React Native - Navigator 递归子项崩溃

objective-c - 如何检查重用标识符是否已经在 UITableView 中注册?

testing - 作为空闲 Web 浏览器进行负载测试

eclipse - 如何测试 Eclipse Juno RCP 的 UI

ios - 在起点画一个矩形,然后按照我的 Action 在 Swift 中结束手势

ios - 对于大于 PI 的值,CAKeyFrameAnimation 不是线性的

iphone - iOS 密码强度检查器

testing - 多模块 Maven 项目中的 Jacoco 和 Arquillian

api - Jmeter View Results Tree 不返回响应数据中的任何内容

testing - 如何从一个文件位置获取数据并使用 tcl 代码运行