为Mac OS命令行工具编写XCTestCase

时间:2015-01-21 15:06:03

标签: xcode macos xctest command-line-tool

我正在尝试对为Mac OS编写的命令行工具进行单元测试。

首次创建项目时,XCode不会在项目导航器中生成测试组。当我尝试添加新的测试目标时,它并没有给我选择将目标指定为"要测试的目标"。

我的问题是:甚至可以将XCTest用于命令行工具项目吗?或者,由于我可以从命令行运行它,这只是被认为是微不足道的?我能理解这种推理,但我确实喜欢测试内部功能。

2 个答案:

答案 0 :(得分:12)

我不确定您使用的是什么版本的Xcode,但是我使用Xcode版本6.2(6C131e)中的模板遇到了类似的问题。也就是说,我能够让XCTests与Command Line Tool项目一起工作。解决方案是忽略"要测试的目标"创建期间的字段,并在创建后将测试目标添加到主方案:

  1. 转到管理方案。你应该看到你的主要目标方案和a 新创建的测试方案。
  2. 选择主要方案并转到“编辑”。
  3. 选择“测试”操作并将新的“测试”目标添加到测试中 使用“测试操作详细信息”面板中的“+”列表。
  4. 从那里你应该能够使用cmd-U运行测试。

答案 1 :(得分:5)

在Xcode 8.2中,我只能在命令行应用程序中运行单元测试,方法是从Test Navigator中添加一个单元测试目标,然后编辑测试方案以在“tests”列表下包含该新测试目标,以及从“文件检查器”窗格的“目标成员资格”部分手动将可测试源文件添加到测试目标。

(即使在添加框架构建阶段之后,从项目“添加目标”屏幕添加单元测试目标也无法与XCTest框架正确链接。)

chartist.js之后,从Test Navigator窗格添加单元测试目标,如下所示:

Apple doc directions

注意:

  • 在单元测试目标设置中,“要测试的目标”下拉列表仍然不会选择命令行工具。将此选项保留为“无”。