【问题标题】:Xcode - Test class File is part of module, ignoring importXcode - 测试类文件是模块的一部分,忽略导入
【发布时间】:2016-01-20 00:39:23
【问题描述】:

所以我有一个带有测试的 iOS 项目,一切正常。

我觉得有必要更改项目名称。我按照苹果文档中的说明做了, 选择项目并更改其名称。

经过一段时间的更新以使其最终运行,应用程序运行正常,但我仍然遇到问题。

由于这个烦人的问题,我无法运行测试。我确定这是一个基本的东西,但我仍然无法弄清楚。

这是我的测试类(为了这个问题,我使用了Foo 示例)

@testable import MyApp // File FooTests is part of module MyApp. Ignoring import.

class FooTests: QuickSpec {

  override func spec() {

     describe("a foo test") {
         it("tests foo") {
             let return = Foo.barMethod()
             XCTAssertEqual(return, "expected", "Expected something, got \(return) instead")
         }
    }
 }

Foo 类未被识别,我收到测试类是 MyApp 一部分的错误,但事实并非如此。

我应该在哪里寻找?

【问题讨论】:

    标签: ios xcode


    【解决方案1】:

    我偶然发现了同样的问题,您的帖子很有帮助。我发现通过根据您的示例将Product Name 更改为AppNameTests,然后产品模块名称会正确反映,您不必在$(PRODUCT_NAME:c99extidentifier) 的末尾添加Testsc99extidentifier 似乎指的是Product Name

    总结:

    • 在 Project 中选择您的测试目标
    • 导航到Build Settings -> Packaging
    • Product Name 更改为您之前的测试目标,可能会附加Tests
    • 我相信按照Apple's renaming a project 的重命名不包括更新@testable 中的模块,所以我必须手动执行此操作

    【讨论】:

    • 就是这样!我很接近。 :) 你的答案肯定更干净。 :)
    • 像魅力一样工作。完美的答案。
    • 无需手动更改Product Name 并附加Tests,只需将Product Name 设置回$(TARGET_NAME)。我已经测试了 Xcode 8 beta 2,现在重命名项目可以解决这个问题。
    • 在厚颜无耻地重命名我的项目并应用此解决方案后,我与“缺少TEST_HOST”斗争了很短的时间。如果您对 xcodeproj 自定义更改有那么,我建议您删除您的测试目标并从头开始创建它。很快就完成了,所有问题都解决了。
    • 也检查产品模块名称。
    【解决方案2】:

    [UPTADE] 这帮助 Jean-Frederic 找到了答案。这就是我接受它的原因。

    我终于设法解决了这个问题,但我对解决方案不满意。

    考虑一下我的应用名称AppName

    由于某些我无法解释的奇怪原因,我的测试目标 Build Settings -> Product Module Name 具有 $(PRODUCT_NAME:c99extidentifier),其值为 Appname,而不是 AppNameTests。我检查了其他项目,值相同,但转换为AppNameTests,所以在这种情况下,我不确定我能做些什么来使其自动更新并在名称中包含测试部分。

    我最终将名称设置为$(PRODUCT_NAME:c99extidentifier)Tests。不确定这是否是一个正确的解决方案,但现在它可以工作。

    如果有人有更好的解决方案,请随时分享。

    【讨论】:

      【解决方案3】:

      这是 Jean-Frederic Plante 的直接并行解决方案,但在我的情况下,问题不是我的测试目标名称与我的主要目标匹配,而是测试目标的模块被错误地设置为匹配模块主要应用目标的名称。要更正以下任一问题:

      • 在您的项目中选择您的测试目标。
      • 导航到构建设置 > 打包
      • 确保产品模块名称产品名称都设置为$(TARGET_NAME)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-23
        • 2017-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多