用于单元测试的 Xcode 5 双日志

Posted

技术标签:

【中文标题】用于单元测试的 Xcode 5 双日志【英文标题】:Xcode 5 double log for unit tests 【发布时间】:2013-11-06 08:10:16 【问题描述】:

我在 Xcode 5.0 中运行单元测试时遇到问题。 在日志中,每条消息都加倍,但使用断点检查显示每个测试都运行一次。

Test Suite 'Multiple Selected Tests' started at 2013-11-06 07:56:23 +0000
Test Suite 'Multiple Selected Tests' started at 2013-11-06 07:56:23 +0000
Test Suite 'ProjectTests.xctest' started at 2013-11-06 07:56:23 +0000
Test Suite 'ProjectTests.xctest' started at 2013-11-06 07:56:23 +0000
Test Suite 'ColorResourcesTests' started at 2013-11-06 07:56:23 +0000
Test Suite 'ColorResourcesTests' started at 2013-11-06 07:56:23 +0000
Test Case '-[ColorResourcesTests test_createDarkGrayColor_Should_ReturnDarkGray]' started.
Test Case '-[ColorResourcesTests test_createDarkGrayColor_Should_ReturnGray]' started.
Test Case '-[ColorResourcesTests test_createDarkGrayColor_Should_ReturnGray]' passed (0.000 seconds).

测试用例“-[ColorResourcesTests test_createDarkGrayColor_Should_ReturnGray]”已通过(0.000 秒)。

【问题讨论】:

XCTests 非常有问题。尝试重新启动 Xcode 并再次运行测试。 已经多次重启,也在多台 Mac 上检查过。这不是什么大问题,但它破坏了我的 Jenkins 构建...... 如果只运行一个测试会发生什么?如果它仍然不起作用,您可能应该提交一个错误。 我正在使用来自这个问题***.com/questions/19136767/… 的代码覆盖修复,问题在于用户默认值中的** XCTestLog** 酷,将其添加为您问题的答案:) 【参考方案1】:

我正在使用来自这个问题 ***.com/questions/19136767/... 的代码覆盖修复,问题在于 XCTestLogin 用户默认值。 (Generate gcda-files with Xcode5, ios7 simulator and XCTest)

#ifdef DEBUG
    + (void)initialize 
        [[NSUserDefaults standardUserDefaults] setValue:@"XCTestLog,GcovTestObserver"
                                                 forKey:@"XCTestObserverClass"];
    
#endif

【讨论】:

以上是关于用于单元测试的 Xcode 5 双日志的主要内容,如果未能解决你的问题,请参考以下文章

XCode 5.1 单元测试覆盖分析在使用块的文件上失败

Xcode 单元测试 - 添加一个用于所有测试类的通用函数

删除 XCode 8 中的单元测试

Xcode 5 在运行 64 位单元测试时显示“正在使用模拟器”

如何在 Xcode 4.5“命令行工具”项目中设置工作逻辑单元测试目标?

使用 XCode 3 对 iPhone 静态库进行单元测试