gpt4 book ai didi

Xcode:测试与调试预处理器宏

转载 作者:行者123 更新时间:2023-12-03 07:52:32 25 4
gpt4 key购买 nike

在创建带有单元测试的新项目时,Xcode 将构建配置设置为 Test 方案的 Debug(与 Run 方案相同)。

我应该区分运行 (Command-R) 和测试 (Command-U) 方案吗?

即,我应该创建一个名为 Test 的新构建配置,向其中添加一个预处理器宏 TEST=1,并将其用作测试方案的构建配置吗?或者,我应该将 Run & Test 都保留为 Debug 吗?

我来自 Ruby/Rails 背景,您通常拥有测试、开发和生产环境。在我看来,Debug 就像开发,Release 就像生产,但是我们缺少测试,这就是为什么我认为添加 Test 可能有意义。

注释?意见?建议?

我特别问这个是因为我想编译一些用于测试的东西:

#ifdef TEST
// Do something when I test.
#endif

如果我也为 Debug 编译它,我认为这并不重要。所以,我真的可以这样做:
#ifdef DEBUG
// Do something when I run or test.
#endif

但是,我现在真的只想做测试。所以,这就是为什么我认为我应该区分调试和测试,但我想知道为什么 Xcode 在默认情况下不为您这样做?苹果认为你不应该区分它们吗?

最佳答案

预处理器宏不起作用,您需要在运行时检查环境。

目标-c

static BOOL isRunningTests(void)
{
NSDictionary* environment = [[NSProcessInfo processInfo] environment];
return (environment[@"XCTestConfigurationFilePath"] != nil);
}

迅速

var unitTesting : Bool 
{
return ProcessInfo.processInfo.environment["XCTestConfigurationFilePath"] != nil
}

(针对 Xcode 11 更新)

关于Xcode:测试与调试预处理器宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6748087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com