使用Xcode 7

时间:2015-08-28 17:20:30

标签: ios xcode swift xcode7 xcode-ui-testing

好的,到目前为止,我还没能在任何测试版中运行此测试。我遇到的一些问题是herehere

现在,我觉得我错过了一些东西。

这是我目前的进展

  1. 创建新项目时启用“UI测试”选项。事实上,这为我增加了一个目标。所以我应该好好去 - 或者我想。 enter image description here
  2. UI测试下的swift文件已经导入了“XCTest”,并且是“XCTestCase”的子类。
  3. setup()启动应用程序 XCUIApplication()。启动()
  4. 我添加了以下内容(点击“录制”按钮) enter image description here
  5. 然后,我运行了这个测试。

    在使用以下

    在setup()中启动应用程序之后,甚至在调用测试之前整个过程都失败了
      

    ***断言失败 - [XCUIApplication init],/ Library/Caches/com.apple.xbs/Sources/XCTest_Sim/XCTest-8170.3/XCTestFramework/UI Testing / XCUIApplication.m:76   /Users/UserName/Documents/Projects/Testing/UiTesting/UITestingApp/UITestingApp.swift:0:错误: - [UITestingApp.UITestingApp testSimpleTap]:失败:捕获" NSInternalInconsistencyException","没有目标应用程序通过测试配置指定的路径:
                        testBundleURL:文件:///用户/用户名/库/开发商/ CoreSimulator /设备/ E3201DC2-CAD3-48C3-95F5-15E18DCA1836 /数据/集装箱/包/应用/ 8B33FC59-FC03-41F8-BD21-43D81BA2D355 / UITestingApp-亚军。应用程序/插件/ UITestingApp.xctest /
                    productModuleName:(空)                           testsToSkip:(空)                           testsToRun:(空)                   reportResultsToIDE:无                     sessionIdentifier:< __ NSConcreteUUID 0x7f93e146c0b0> F242796B-ED26-4AA7-861A-540D2D93CB8F           pathToXcodeReportingSocket:(空)             disablePerformanceMetrics:无       treatMissingBaselinesAsFailures:无                       baselineFileURL:(空)                 targetApplicationPath:(空)             targetApplicationBundleID:(空)                     reportActivities:无

    任何人遇到这个问题或对我可能遗失的内容有什么建议吗?

    注意:我确实将UI测试目标的“目标应用程序”设置为我的应用程序

    更新:我注意到这适用于Xcode的所有beta / final版本 - 相应地更新了标题

13 个答案:

答案 0 :(得分:41)

我有一个类似的问题,我的错误是试图在常规测试目标中使用UI测试代码。一旦我创建了一个新目标,从“iOS UI Testing Bundle”开始并将代码复制到那里,错误就消失了。这是指向正确方向的线索: https://twitter.com/punksomething/status/609505357132500993 “是的,我试图在常规测试目标中使用UI测试。必须创建一个新添加的UI测试目标”

答案 1 :(得分:17)

当我尝试将新类添加到单元测试目标时,发生了这种情况,但我选择了UI测试用例类模板而不是单元测试用例类模板。

确保始终选择合适的一个。尽管它们都是XCTestCase子类,并且您将它们分配给正确的目标,但在选择错误的模板时会抛出此错误。

enter image description here

答案 2 :(得分:5)

重命名目标后我得到了这个。解决方案是在我的UITest目标中将“目标应用程序”设置为“无”并点击构建。在此之后,我将“无”设置回我的应用程序并解决了错误。 我认为重命名很可能搞砸了ui测试目标的“目标应用程序”设置。

答案 3 :(得分:4)

我得到了断言

  

***断言失败 - [XCUIApplication init],/ Library/Caches/com.apple.xbs/Sources/XCTest_Sim/XCTest-8170.3/XCTestFramework/UI   测试/ XCUIApplication.m:76

定期,正如其他答案中所述。真烦人,我花了一些时间找到摆脱它的最小步骤。

我找到的关键解决方案是重启设备。因此,您不需要删除应用程序,重新启动Xcode或其他东西,只需重新启动即可使此断言消失。

答案 4 :(得分:3)

我遇到了这个问题。我认为问题源于沿途重命名目标。这里没有一个修复程序帮助我解决了我的问题。由于我刚开始并且还没有编写任何测试,我删除了UI测试的整个目标并重新添加它。同名,一切都开始正常工作。

如果您遇到此问题,可能是由于命名。您可以通过这种方式跟踪它或保存测试并重新添加UI目标。

答案 5 :(得分:2)

经过无休止的调整后,将“Xcode首选项”中的派生数据位置从“Legacy”更改为“Custom”并将其运行起来!

enter image description here

答案 6 :(得分:2)

在编写了几个测试并运行它们后,我收到了这个错误。我尝试了所有修复和建议,但没有一个适合我。

我决定删除在运行测试并重新启动设备时创建的XCUI应用程序,并且它有效。但是,如果我之后运行测试7或8次,则错误会再次出现,我只需重复解决方案循环。如果您只是删除应用程序而不重新启动它将无法正常工作。

不确定这个答案是否适用于所有人,但这对我有用。

答案 7 :(得分:1)

在我的TestCaseClass

的setup()方法中评论下面的代码后,它对我有用

continueAfterFailure = false& XCUIApplication()。启动()

答案 8 :(得分:1)

删除现有目标并再次创建可解决问题。

确保选择正确的测试包。对于UI测试,它应该是" iOS UI测试包"。

答案 9 :(得分:0)

我有这个问题在xCode 8上运行Cucumberish测试。

我通过项目(项目导航器)>修复MyTestTarget>一般

这里确保将目标应用程序设置为您希望运行测试的应用程序。默认情况下,它设置为无。

答案 10 :(得分:0)

问题:由于名称更改或任何其他更改,目标应用程序已更改

解决方案:转到>常规>从此处选择目标应用程序

enter image description here

答案 11 :(得分:0)

这可能是因为您的目标没有 TEST_TARGET_NAME 构建设置,或者它与您正在测试的目标的确切名称不匹配。即使在目标的“常规”选项卡中将“目标应用程序”设置为您的应用程序,您仍然需要在“构建设置”中设置 TEST_TARGET_NAME

答案 12 :(得分:-1)

  1. 新建文件UI测试用例和单元测试用例模板差别不大,(前两行代码),在测试中选择单元测试会提示“应用程序未运行”,添加“XCUIApplication()。”启动()“可以解决问题。
  2. 当测试提示没有找到控件(例如UITextField)时,请设置控件名称\ identity - >可访问性 - >将\标记为与UITestClass中使用的控件相同的名称。
  3. 您没有将测试类添加到相应的UI目标。