【问题标题】:Can't run UI Testing on older project无法在旧项目上运行 UI 测试
【发布时间】: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)
【问题讨论】:
标签:
ios
xcode
xcode7
ui-testing
xcode-ui-testing
【解决方案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
【解决方案2】:
这可能是由于您的 Target 设置存在问题。
试试下面的。
- 删除现有目标。
- 通过再次选择“iOS UI 测试包”创建一个新目标。
- 然后一一链接您的测试文件。
有效。
【解决方案4】:
我在物理 iPad 上遇到了同样的问题。
当我最终删除应用程序及其所有数据,然后关闭并重新启动设备时,问题就解决了。
【解决方案5】:
您必须在您的 UITest 目标中的相关“构建设置”部分中添加自定义“用户定义的设置”属性:
用钥匙:
TEST_TARGET_NAME:YourTargetName
USES_XCTRUNNER:YES(可选)
现在您可以运行 UI 测试了。
【解决方案6】:
当您在单元测试目标中有 UI 测试文件时会发生这种情况,请确保该文件位于正确的目标中。