为啥 Xcode 找不到我的单元测试应用程序?

Posted

技术标签:

【中文标题】为啥 Xcode 找不到我的单元测试应用程序?【英文标题】:Why can't Xcode find my App for Unit Tests?为什么 Xcode 找不到我的单元测试应用程序? 【发布时间】:2020-07-26 12:33:48 【问题描述】:

我在 ios 方面相当缺乏经验。我想为我的 Cocoapods 项目编写单元测试。

我要测试的 ViewController 位于 Pod 中。当我想编写单元测试时,我已经收到一条错误消息 import MyApplication

上面写着

No such module 'MyApplication'

请注意,我仅使用“MyApplication”来代替我在图片中用红色划掉的原始名称。

有什么问题?

编辑:

我的测试类代码:

import UIKit
import XCTest
import Pods_MyApplication_Example

@testable import Pods_MyApplication

class Tests: XCTestCase 

    override func setUp() 
        super.setUp()
        // Put setup code here. This method is called before the invocation of each test method in the class.
    

    override func tearDown() 
        // Put teardown code here. This method is called after the invocation of each test method in the class.
        super.tearDown()
    

    func testExample() 
        // This is an example of a functional test case.
        XCTAssert(true, "Pass")
    

    func testPerformanceExample() 
        // This is an example of a performance test case.
        self.measure() 
            // Put the code you want to measure the time of here.
        
    


要创建测试目标,请在测试导航器上单击“+”,然后选择“新建单元测试目标”

如果有任何信息丢失,我很抱歉。有的话我会加的!

EDIT2:更改的图片可能会提供更多信息

【问题讨论】:

您要导入的 Pods_MyApplication_Example 模块是什么?如果删除 import Pods_MyApplication_Example 行会发生什么? 感谢您的评论,很抱歉回复晚了。 MyApplication_Example 是 MyApplication 的目标。但是删除该导入行并不能解决错误消息。 MyApplication_Example 是应用程序目标。这就是您必须在 @testable 导入中提供的内容。我更新了答案。 【参考方案1】:

您必须使用@testable import 来导入您应用的模块以进行单元测试。您必须提供应用程序目标的名称 Pods_MyApplication_Example,而不是项目的名称。在您的示例中,它将如下所示:

@testable import Pods_MyApplication_Example

并删除导入应用目标的 import 语句。

【讨论】:

感谢您的回答!但添加@testable 后我仍然收到相同的错误消息。 编辑您的问题并在问题中提供您的单元测试类的源代码。在编辑您的问题时,还要提及您的项目是否有单元测试目标,并显示您为创建单元测试类所采取的步骤。【参考方案2】:

感谢您的回复。我必须将要测试的插件/应用程序添加到我的 Podfile 中的测试目标中。所以 Podfile 看起来像这样:

use_frameworks!
target "MyApplication_tests" do
  pod 'MyApplication', :path => '../'
end

运行pod update 后,我可以导入并测试我的应用程序。

【讨论】:

以上是关于为啥 Xcode 找不到我的单元测试应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

ui测试xcode,如何使用cellquery点击表格视图单元格按钮

Xcode 4:为啥我不能将头文件添加到单元测试目标?

Xcode 10 - 获取单元测试日志文件

使用命令行的 Xcode 4 单元测试

iPhone单元测试链接问题,找不到DevToolsBundleInjection.framework

在 Laravel 5 单元测试中找不到特征