【问题标题】:Adding Unit Tests to an already existing project?将单元测试添加到已经存在的项目?
【发布时间】:2011-10-15 11:54:16
【问题描述】:

当您创建 XCode 4 项目时,它会询问您是否要包含单元测试。但是如何将它添加到没有它们创建的项目中呢?

我用单元测试开始了一个项目来尝试解决这个问题,看起来它与我现有项目的唯一区别是新项目中的 Test.h 和 Test.m 文件。

但是当我将它们移动到我的旧项目并尝试构建时,它说没有这样的文件或目录:SenTestingKit/SenTestingKit.h。对我来说,这看起来像是一个框架,但如果我去构建阶段并尝试添加框架,则没有一个名为 SenTestingKit 的可用 :( 新项目只链接通常的嫌疑人:UIKit、CoreGraphics 和 Foundation,但是没有 SenTestingKit。

【问题讨论】:

    标签: iphone ios xcode unit-testing xcode4


    【解决方案1】:

    针对 Xcode 10.2 更新了答案。

    很高兴您提出这个问题 - 向项目添加测试永远不会太晚!

    1. 通过在导航器中选择您的项目打开您的目标面板
    2. 点击目标列表底部的 + 按钮
    3. 在 iOS 选项卡的测试部分下选择 iOS 单元测试包
    4. 提供所需信息并点击完成

    就这么简单。 Xcode 将为您生成一个目标、一些样板文件(例如 Info.plist)和一个初始测试用例文件。祝测试愉快!

    【讨论】:

    • 为了澄清原始海报,您需要将单元测试捆绑目标添加到您的项目中。单元测试包位于 iOS 和 Mac OS X 下的 Other 组中。
    • @Mark:谢谢,我说的是这个。
    • 我添加了目标,但是当我添加:新文件-> Objective C测试用例类,并尝试编译时,它说找不到SenTestingKit/SenTestingKit.h。
    • 确保测试用例类的 .m 文件是单元测试目标的成员。当您将测试用例类添加到项目时,Xcode 的默认行为是将类添加到应用程序目标,而不是单元测试目标。在项目导航器中选择测试用例类并打开文件检查器以查看文件的目标成员资格。
    • @kashiv,我的单元测试目标工作正常,直到我将新文件添加到项目中,之后它将无法在 hudson 上工作(自动构建和测试)。我的构建仍然成功,可以在 xcode 中运行主要目标和单元测试,但它在哈德森不起作用。我还需要将这些文件添加到测试目标吗?
    【解决方案2】:

    此外,如果您希望能够使用 cmd-U 来运行测试,请删除为测试包创建的方案,而是编辑您的主应用程序方案并在测试配置中添加测试包。看这个截图:

    【讨论】:

    • 在 Xcode 11 中,当添加测试包目标时,已经列出的测试包会在当前活动模式的测试部分中启用。不会生成单独的测试架构。
    【解决方案3】:

    Xcode 7 更新

    方法一

    文件 > 新建 > 目标...

    选择 iOS 单元测试包。 (如果要添加 UI 测试,请选择 UI 测试包。)

    方法二

    在项目导航器中单击您的项目名称。您将看到列出的目标。在屏幕底部按加号 (+) 按钮并添加 iOS 单元测试包。

    此图中的测试目标已经添加,但您可以看到添加按钮在哪里。

    相关

    【讨论】:

      【解决方案4】:

      使用测试导航器的另一个变体

      Xcode 版本 10.2.1

      1. 打开Test navigator(⌘命令 + 6)
      2. + 在底部
      3. New Unit Test Target...
      4. 选择选项

      不要忘记添加下一个导入以测试 internal[About] 元素

      • #import "myClass.h" 用于 Objective-C
      • @testable import module_name 斯威夫特

      【讨论】:

        【解决方案5】:

        这是一个非常具有描述性的操作指南: Adding Unit Tests to an existing iOS project with Xcode 4

        【讨论】:

          【解决方案6】:

          关于正确答案的更多提示:

          XCode 6 中,现在要容易得多,因为您不需要修复任何构建设置。

          如果需要,通过单击目标 -> Info -> Bundle Identifier 将测试目标上的包 ID 更改为正确的 ID。

          CMD + U,您的测试将运行。

          如果您使用 CocoaPods(很有可能),您还应该将 Pods 添加到项目的配置中。

          【讨论】:

            【解决方案7】:

            [为 Xcode 10.2 更新]:

            1. 打开您的 Xcode 项目
            2. 开放目标
            3. 点击“添加目标”按钮
            4. 转到“测试”部分
            5. 选择“iOS 单元测试包”

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-12-07
              • 1970-01-01
              • 2017-12-23
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多