【问题标题】:Writing XCTestCase for Mac OS Command Line Tool为 Mac OS 命令行工具编写 XCTestCase
【发布时间】:2015-03-20 03:50:43
【问题描述】:

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

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

我的问题是:是否可以将 XCTest 用于命令行工具项目?还是仅仅因为我可以从命令行运行它而被认为是微不足道的?我可以理解这种推理,但我真的很想测试一些内部功能。

【问题讨论】:

    标签: xcode macos xctest command-line-tool


    【解决方案1】:

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

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

    按照Apple doc directions 从“测试导航器”窗格添加单元测试目标如下所示:

    注意:

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

    【讨论】:

      【解决方案2】:

      我不确定您使用的是哪个版本的 Xcode,但我在使用 Xcode 版本 6.2 (6C131e) 中的模板时遇到了类似的问题。也就是说,我能够让 XCTests 与命令行工具项目一起工作。解决方案是在创建过程中忽略“Target to be Tested”字段,而是在创建后将测试目标添加到主方案:

      1. 转到管理方案。你应该看到你的主要目标的方案和一个 新创建的测试方案。
      2. 选择您的主要方案并转到编辑。
      3. 选择测试操作并将新的测试目标添加到测试中 使用“测试操作详细信息”面板中的“+”列出。

      从那里您应该能够使用 cmd-U 运行测试。

      【讨论】:

      • 我还必须手动将测试目标成员身份添加到我希望测试的所有代码文件中。
      • @JeffreyFulton 关于将文件添加到测试包的评论是这个答案起作用的原因。我会考虑将其添加到答案中,然后将其标记为正确的解决方案。
      猜你喜欢
      • 2011-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 2010-09-10
      • 2012-07-25
      相关资源
      最近更新 更多