【问题标题】:Xcode 5: Unit Tests not runningXcode 5:单元测试未运行
【发布时间】:2013-09-27 17:03:06
【问题描述】:

我创建了几个测试用例,它们都通过了……那是因为它们没有运行。

从 Xcode,我得到:

测试套件“所有测试”开始于...
测试套件“所有测试”完成于...
在 0.00 秒内执行 0 次测试,0 次失败(0 次意外)

项目(和单元测试类)构建成功。

我所有的测试类都选择了 MyApp_appTests 作为 Target Membership。生产类选择了 MyApp_app 和 MyApp_appTests 目标。

我验证了 MyApp_appTests 目标构建设置(捆绑加载器和测试主机)。

Bundle Loader (Debug): $(BUILT_PRODUCTS_DIR)/MyApp.app/MyApp
Test Host (Debug): $(BUNDLE_LOADER)

我已导入 SenTestingKit.framework(通过 Targets Build Phases “Link Binary With Libraries”)。

我所有的测试都以-(void)testThat...开头

我还检查了一些 stackoverflow.com 问题:

stackoverflow.com/questions/8632254/xcode-4-2-cant-run-unit-test stackoverflow.com/questions/3608484/ocunit-tests-not-running-not-being-found stackoverflow.com/questions/16672616/ocunit-test-cases-not-running

还有这篇文章:

twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/

我不知道在哪里寻找...任何帮助都非常感谢!

【问题讨论】:

  • YOudo 不需要在 Xcode 5 中导入 SenTestingKit.framework。在 Xcode 5 单元测试中查看 WWDC-13 视频。
  • 如果我不这样做,我会收到构建错误(_OBJC_METACLASS_$_SenTestCase" 显示为 armv7 架构的未定义符号)。这是否表明我的项目中的配置错误?
  • 如果您使用 Xcode 5 模板创建测试环境,该项目将包括一个测试目标和一个工作(和失败)测试。
  • 您为我指明了正确的方向:包含的类使用 XCTestCase 而不是 SenTest。改变框架使它对我起作用(并且失败了!)。你知道为什么吗? SenTest 框架是否已弃用?请注意,如果您将解释/cmets 包含在答案中,它将被接受,因为它帮助我解决了我的问题。感谢您的帮助!

标签: ios objective-c xcode unit-testing testing


【解决方案1】:

Xcode 5 现在使用 XCTestCase,而不是 SenTest。 Apple 现在更直接地支持单元测试,包括他们自己的名为 XCTestCase 的 SenTest 版本。此外,UI 得到了很大改进,允许运行单独的测试、测试导航器并且不再创建 .h 测试文件。请注意,测试宏不是带有 XC 前缀的重命名。

请参阅 WWDC-13 视频 409:“在 Xcode 5 中测试”。

如果您使用 Xcode 5 模板创建测试环境,该项目将包括一个测试目标和一个工作(和失败)测试。

【讨论】:

    【解决方案2】:

    对我来说,在测试目标的构建设置中将“包装器扩展”从“octest”更改为“xctest”

    【讨论】:

    • 这对我有用。我需要在选择 Edit->Refactor->Convert to XCTest... 后执行此操作
    • 在我的例子中,我没有重构现有的测试,我注意到所有的 SenTests 都被执行并显示在测试导航器(Xcode 5.1)中,但是当新的 XCTestCase 列在导航器中时它从未被调用- 断点永远不会命中,等等。将包装器扩展切换到 xctest 会触发同一项目中两种类型的测试的运行。
    【解决方案3】:

    如果您在 Xcode 5+ 中创建新的测试目标并计划使用 SenTestKit 进行单元测试,将测试目标的“Wrapper Extension”构建设置从默认的“xctest”更改为“octest”将有助于执行测试用例。

    【讨论】:

      【解决方案4】:

      我在使用 Xcode 7.3 时遇到了这个问题,对我有用的是在设备上运行应用程序一次,然后运行测试。

      【讨论】:

        猜你喜欢
        • 2013-11-26
        • 2021-11-25
        • 1970-01-01
        • 2013-09-26
        • 1970-01-01
        • 1970-01-01
        • 2020-07-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多