无法在旧项目上运行 UI 测试

Posted

技术标签:

【中文标题】无法在旧项目上运行 UI 测试【英文标题】:Can't run UI Testing on older project 【发布时间】:2015-09-20 09:57:21 【问题描述】:

我正在尝试在旧项目上使用 Xcode 7 添加和运行 UI 自动化测试。 这是我所做的:

    添加了新的 UI 测试目标 将该目标的编译器版本更改为默认编译器 (Apple LLVM 7.0) 使用 iPhone 6 Plus ios9 模拟器录制了一个测试(效果非常棒)

现在,当我尝试运行记录的测试时,出现以下错误:

失败:捕获“NSInternalInconsistencyException”,“没有目标 通过测试配置指定的应用程序路径: testBundleURL:file:///xxxxxxxxxxx/PlugIns/PageonceUITests.xctest/ 产品模块名称:(空) 测试跳过:(空) 测试运行:(空) 报告结果到IDE:否 sessionIdentifier:<__nsconcreteuuid> 7045B650-CDAF-4EC9-9738-83F78E1514D8 pathToXcodeReportingSocket:(null) disablePerformanceMetrics: 没有treatMissingBaselinesAsFailures: 没有 基线文件URL:(空) 目标应用程序路径:(空) targetApplicationBundleID:(null)

【问题讨论】:

【参考方案1】:

此错误似乎是在抱怨添加 UI 测试目标时选择了“要测试的目标”字段。UI 测试目标 -> 常规选项卡下的“目标应用程序”属性是否正确显示您选择的主应用程序? 一个快乐的配置应该是这样的,

2015-10-04 17:30:50.960 XCTRunner[22941:4703128] Found configuration <XCTestConfiguration: 0x7fbf3050c8b0>

testBundleURL:file:///Users/username/Library/Developer/Xcode/DerivedData/App-fxeyzrynjcscxzaxjvmnormcjhbr/Build/Products/Debug-iphonesimulator/APPUITests-Runner.app/PlugIns/APPUITests.xctest/
              productModuleName:APPUITests
                    testsToSkip:(null)
                     testsToRun:(null)
             reportResultsToIDE:YES
              sessionIdentifier:<__NSConcreteUUID 0x7fbf30503430> B324DF9D-769F-4217-901F-24482A719005
     pathToXcodeReportingSocket:(null)
      disablePerformanceMetrics:no
treatMissingBaselinesAsFailures:no
                baselineFileURL:(null)
          targetApplicationPath:/Users/username/Library/Developer/Xcode/DerivedData/APP-fxeyzrynjcscxzaxjvmnormcjhbr/Build/Products/Debug-iphonesimulator/AppName.app
      targetApplicationBundleID:com.bundle.appBundle.app.dev
               reportActivities:no

【讨论】:

我遇到了同样的问题,this 解决了。【参考方案2】:

这可能是由于您的 Target 设置存在问题。

试试下面的。

    删除现有目标。 通过再次选择“iOS UI 测试包”创建一个新目标。 然后一一链接您的测试文件。

有效。

【讨论】:

【参考方案3】:

我遇到了同样的问题并通过不使用此答案中描述的旧版构建位置解决了它:https://***.com/a/32658990/901334

如果我使用“旧版”,则可以记录 UI 测试,但在我尝试运行它们时会失败。使用“唯一”作为设置,它们工作正常。 (这可以用新项目重现)

Xcode → 首选项 → 位置 → 派生数据 → 高级... → [x] 唯一

【讨论】:

【参考方案4】:

我在物理 iPad 上遇到了同样的问题。 当我最终删除应用程序及其所有数据,然后关闭并重新启动设备时,问题就解决了。

【讨论】:

【参考方案5】:

您必须在您的 UITest 目标中的相关“构建设置”部分中添加自定义“用户定义的设置”属性:

用钥匙:

TEST_TARGET_NAMEYourTargetNameUSES_XCTRUNNERYES(可选)

现在您可以运行 UI 测试了。

【讨论】:

【参考方案6】:

当您在单元测试目标中有 UI 测试文件时会发生这种情况,请确保该文件位于正确的目标中。

【讨论】:

以上是关于无法在旧项目上运行 UI 测试的主要内容,如果未能解决你的问题,请参考以下文章

Xcode:momc 无法在旧项目中编译 .mom 文件

Android向后兼容性

运行 UI 测试时,Fastlane 扫描“无法合成事件”,适用于 Xcode

XCode 7 beta 6 UI 测试 - 无法选择列表中的元素

使用单个命令从多模块项目运行所有 UI/单元测试

System.Net.Http.HttpRequestException 异常将在物理设备上运行 xamarin UI 测试