只应在测试运行时调用_XCTFailInCurrentTest

时间:2016-05-13 14:30:55

标签: ios jenkins xcode-ui-testing

我现在正在使用Xcode进行UITesting,我收到了这个错误。

  

* void _XCTFailInCurrentTest中的断言失败(NSString *,   ...)()   /Library/Caches/com.apple.xbs/Sources/XCTest_Sim/XCTest-10112/XCTestFramework/Classes/XCTestCase.m:63   2016-05-13 22:31:54.961 XCTRunner [15428:168507] * 终止应用   由于未捕获的异常'NSInternalInconsistencyException',原因:   '_XCTFailInCurrentTest只应在测试运行时调用。   失败描述:未能完成   

我在这里看过其他类似的帖子。

Cannot run Xcode (7.3) UI tests in Jenkins

我正在使用Jenkins但是现在,我直接从Xcode运行,我甚至无法从Xcode运行。我该怎么办?

3 个答案:

答案 0 :(得分:4)

<强>背景

  • 我在Xcode 7.3(7D175)和iOS模拟器9.3中遇到过这个问题。
  • 症状如下
    • Test Runner正常启动并退出。
    • 在此之后,测试中的应用程序永远不会启动。
    • (如果未安装测试的应用程序,Xcode也将永远不会在开始测试之前安装应用程序)。
    • (一个侧面症状是录音对我来说也不起作用 - 我从this SO post.)获取灵感

30秒后测试超时:

XCTRunner[36260:489138] Continuing to run tests in the background with task ID 1    
2016-05-18 16:17:25.720 XCTRunner[36260:489138] *** Assertion failure in void _XCTFailInCurrentTest(NSString *, ...)(), /Library/Caches/com.apple.xbs/Sources/XCTest_Sim/XCTest-10112/XCTestFramework/Classes/XCTestCase.m:63
2016-05-18 16:17:25.723 XCTRunner[36260:489138] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '_XCTFailInCurrentTest should only be called while a test is running.
Failure description: Failed to receive completion for <XCDeviceEvent:0x7fddc241f970 page 12 usage 64 duration 0.01s within 30.0s'

对我有用的修正是:

  • 重置模拟器。
  • 检查UI测试目标的构建设置中的部署目标是否设置为iOS 9.x. (在我的情况下,它设置为iOS 8)
  • 更改目标后,清理并重建。

执行这些步骤后,Xcode能够在测试之前安装应用程序,录制工作,并且错误消失了。

答案 1 :(得分:0)

由于某种原因,模拟器被破坏了。在我的情况下,一旦达到同一点,就无法启动任何测试。在我的情况下,它的工作原理是重置模拟器(菜单模拟器|重置内容和设置...)或切换到任何其他模拟器。

答案 2 :(得分:0)

我们尝试了其他回复的提示,这些提示对我们无效 完全重新安装Xcode 7.3修复了我们的问题。

  • 删除Xcode
  • 重新开始
  • 重新安装Xcode
  • 成功