用Xcode 7运行UITesting时出现'NSInternalInconsistencyException'

好的,到目前为止,我还没有能够运行这个testing。 我遇到的一些问题在这里和这里

现在,我觉得我失去了一些东西。

这是我迄今取得的进展

  1. 在创build新项目时启用“UItesting”选项。 这实际上为我增加了一个目标。 所以我应该好好去 – 或者我想。 在这里输入图像说明
  2. UI Testing下的swift文件已经导入了“XCTest”,并且是“XCTestCase”的一个子类。
  3. setup()启动应用程序XCUIApplication()。launch()
  4. 我添加了以下内容(通过点击“录制”button) 在这里输入图像说明

然后,我跑了这个testing。

整个事情甚至在testing被调用之前就失败了,就是在setup()中启动应用程序之后

***声明失败 – [XCUIApplication init],/ Library / Cache / 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”,“没有通过testingconfiguration指定的目标应用程序path:
testBundleURL:文件:///用户/用户名/库/开发商/ CoreSimulator /设备/ E3201DC2-CAD3-48C3-95F5-15E18DCA1836 /数据/集装箱/包/应用/ 8B33FC59-FC03-41F8-BD21-43D81BA2D355 / UITestingApp-亚军。应用程序/插件/ UITestingApp.xctest /
productModuleName:(null)testsToSkip:(null)testsToRun:(null)reportResultsToIDE:no sessionIdentifier:<__ NSConcreteUUID 0x7f93e146c0b0> F242796B-ED26-4AA7-861A-540D2D93CB8F pathToXcodeReportingSocket:(null)disablePerformanceMetrics:no treatMissingBaselinesAsFailures:no baselineFileURL:(null)targetApplicationPath :(null)targetApplicationBundleID:(null)reportActivities:no

任何人遇到这个问题或有什么我可能会失踪的build议?

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

更新:我注意到这是适用于Xcode的所有testing版/最终版本 – 相应地更新标题

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

当我尝试添加一个新的类到我的unit testing目标,但我select了UItesting用例类模板而不是unit testing用例类模板时,发生了这种情况。

确保你总是select一个适当的。 尽pipe它们都是XCTestCase子类,并且将它们分配给适当的目标,但是在select错误的模板时会抛出此错误。

在这里输入图像说明

重命名我的目标后,我得到了这个。 解决的办法是在我的UITest目标中将“目标应用程序”设置为“无”,并点击构build。 在此之后,我将“无”设置回我的应用程序,并且解决了错误。 我认为重命名很有可能使UItesting目标的“目标应用程序”设置混乱。

我得到了断言

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

定期,正如其他答案中所述。 真的很烦人,花了一些时间才find摆脱它的最低步骤。

我发现的关键解决scheme是重新启动您的设备。 所以,你不需要删除应用程序,重新启动Xcode或其他东西,只要重新启动应该使这个断言消失。

经过无休止的调整,将“Xcode首选项”中的派生数据的位置从“传统”更改为“自定义”,并使其工作!

在这里输入图像说明

我有这个确切的问题。 我认为这个问题源自一个目标的重命名。 这里没有任何修复帮助我解决我的问题。 由于我刚刚开始,并没有写任何testing,我删除了整个目标的UItesting,并重新添加它。 相同的名字和一切开始工作就好了。

如果遇到这个问题,可能是由于命名。 你可以用这种方式来追踪它,或保存你的testing并重新添加一个UI目标。

编写一些testing并运行后,我得到了这个错误。 我尝试了所有修正和build议张贴,但没有一个为我工作。

我决定删除每次运行testing时创build的XCUI应用程序,然后重新启动我的设备并运行。 但是,如果我运行testing7或8次后,错误回来,我只是重复解决scheme周期。 如果你只是删除应用程序,而不重新启动它将无法正常工作。

不知道这个答案是否适用于所有人,但这是对我有用的。

它在我在我的TestCaseClass的setup()方法中注释下面的代码后为我工作

continueAfterFailure = false&XCUIApplication()。launch()

我有这个问题在xCode 8上运行Cucumbertesting。

我通过去项目(在项目导航器)> MyTestTarget>常规固定

这里确保目标应用程序被设置为你想运行testing的应用程序。 默认情况下,它被设置为无。

删除现有的目标并重新创build修复问题。

确保你正在select正确的testing包。 对于UItesting,应该是“ iOSunit testing包 ”。

  1. 新build创build文件的UItesting用例和unit testing用例模板没有太大区别,(前两行代码),在testing中selectunit testing会提示“应用程序未运行”,添加“XCUIApplication()。launch()”可以解决问题。
  2. 当testing提示找不到控件(例如UITextField)时,请将控件名称\ identity – > accessibility – > Label \设置为与UITestClass中使用的控件相同的名称。
  3. 您没有将testing类添加到相应的UI目标。