使用单元测试创建新项目时,Xcode 将测试方案的构建配置设置为“调试”(与“运行”方案相同)。
我应该区分运行 (Command-R) 和测试 (Command-U) 方案吗?
即,我是否应该创建一个名为 Test 的新构建配置,向其中添加预处理器宏 TEST=1,并将其用作测试方案的构建配置?或者,我应该将“运行和测试”都保留为“调试”吗?
我有 Ruby/Rails 背景,通常有测试、开发和生产环境。在我看来,调试就像开发,发布就像生产,但是我们缺少测试,这就是为什么我认为添加测试可能是有意义的。
评论?意见?建议?
我特别问这个是因为我想编译一些测试用的东西:
#ifdef TEST
// Do something when I test.
#endif
我认为如果我也为调试编译它并不重要。所以,我真的可以这样做:
#ifdef DEBUG
// Do something when I run or test.
#endif
但是,我现在真的只想做测试。所以,这就是为什么我认为我应该区分调试和测试,但我想知道为什么 Xcode 默认情况下不为你这样做?苹果是否认为你不应该区分它们?
预处理器宏将不起作用,您需要在运行时检查环境。
Objective-c
static BOOL isRunningTests(void)
{
NSDictionary* environment = [[NSProcessInfo processInfo] environment];
return (environment[@"XCTestConfigurationFilePath"] != nil);
}
Swift
var unitTesting : Bool
{
return ProcessInfo.processInfo.environment["XCTestConfigurationFilePath"] != nil
}
(针对 Xcode 11 进行了更新)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)