Xcode iOS UI 当多个测试 类 存在时,SIGABRT 测试崩溃

Xcode iOS UI tests crash with SIGABRT when multiple test classes exist

我正在开发一个 iOS 应用程序,使用 XCUITest 方法来测试界面。我在第一个文件 AppUITests.swift 中设置了一个基本的 UI 测试,该文件 let app = XCUIApplication() 作为 XCTestCase 子类的成员,后来 app.launch()setUp()方法。此文件中的测试一切正常。

我想在应用程序的第一个主要 "mode" 中为 UI 测试创建一个新的测试套件,所以我创建了一个新文件 MainModeUITests.swift 并复制了相同的代码超过。我的计划当然是在此模式下测试 UI 工作流程,但在这个新文件中,应用程序在调用 XCUIApplication() 的行崩溃并显示 signal SIGABRT

目前我正在模拟器上进行测试,还没有进行设备测试。 UI 测试为什么会在应用程序中抛出 SIGABRT 的任何想法?为什么我不能在不同的测试套件中调用它?有没有办法将 UI 测试分成多个 swift 文件?

我想通了:我有两个目标(一个用于单元测试,另一个用于 UI 测试)。我不小心将 UI 测试文件添加到非 UI-test 目标,因此当从两个目标进行 运行 测试时,XCUIApplication() 方法试图以不使用 XCUITest 的单元测试不喜欢的方式访问应用程序。解决方案:从另一个测试目标上的 "Compile sources" 删除所有 XCUI 测试源。