间歇性地无法在XCode 8中运行单元测试
我升级到XCode 8,我有时候能够运行我的测试…例如,我只是测试了一些代码,并且能够连续运行我的测试3次…然后我第四次得到:
我重新启动了我的iOS设备,重新启动了我的计算机,删除了原始数据等…它将不再运行测试. ARRRGH !!!! UPDATE 我应该提一下,我试图在我的iPad上运行测试,我无法在模拟器上运行测试,因为我有太多代码与NEON内在函数有关,所以模拟器不会运行. 但似乎有用的是,当这种情况发生时,切换到我的iPhone上构建测试,然后它在构建时,它只是说“运行测试”并且旋转器永远旋转,但没有测试实际运行…我可以实际上点击我的应用程序并与之交互,这通常不是我在运行测试时得到的行为……无论如何,我然后停止了构建,切换回我的iPad,现在再次运行测试. 解决方法
当我运行在测试代码中导致未捕获异常的测试代码时,我在iPad上运行的XCode 8.0(版本10.0.2(14A456))一致地得到此错误.可能还有其他示例,但只要受测试的代码在灾难性情况下失败,就会发生这种情况.
当单元测试因异常而失败时,XCode无法正常恢复. 我相信这是XCode的一个问题;这个答案提供了一种解决方法.单元测试将在异常时失败,并且后续运行会产生“未找到图像”错误. 我发现最简单的恢复如下: >将设备目标设置为通用iOS设备 这是一个证明问题的示例故障; 请注意,此示例中的核心问题是我编写了一个错误的单元测试;我将一个nil参数传递给一个方法,该方法随后用于尝试将nil对象添加到字典中. 更新:为了准确起见,问题在于,当一个可变的字典被预期时,我将一个不可变的字典作为参数传递,从而产生“无法识别的选择器”错误.在任何情况下,异常都是导致XCode表现不佳的原因. Assertions: failed: caught "NSInvalidArgumentException","-[__NSDictionaryI setObject:forKey:]: unrecognized selector sent to instance 0x1818f200" ( 0 CoreFoundation 0x1dd89e1f <redacted> + 154 1 libobjc.A.dylib 0x1cfef077 objc_exception_throw + 38 2 CoreFoundation 0x1dd8f515 <redacted> + 0 3 CoreFoundation 0x1dd8d589 <redacted> + 700 4 CoreFoundation 0x1dcb2f08 _CF_forwarding_prep_0 + 24 5 tDefense 0x000cd299 +[PlayingPiece addPlayingPiece:atLocation:onBoard:] + 326 6 tDefense 0x000cd5ad +[PlayingPiece addNewPiece:atLocation:onBoard:] + 154 7 tDefenseTests 0x00410777 -[PlayFieldTests testGetNeighbors] + 4594 8 CoreFoundation 0x1dd8e864 <redacted> + 68 9 CoreFoundation 0x1dcaf349 <redacted> + 294 10 XCTest 0x00307de5 __24-[XCTestCase invokeTest]_block_invoke_2 + 472 11 XCTest 0x0033b0dd -[XCTestContext performInScope:] + 312 12 XCTest 0x00307c07 -[XCTestCase invokeTest] + 296 13 XCTest 0x00308439 -[XCTestCase performTest:] + 560 14 XCTest 0x0030578d -[XCTestSuite performTest:] + 520 15 XCTest 0x0030578d -[XCTestSuite performTest:] + 520 16 XCTest 0x0030578d -[XCTestSuite performTest:] + 520 17 XCTest 0x002f1d55 __25-[XCTestDriver _runSuite]_block_invoke + 52 18 XCTest 0x00312325 -[XCTestObservationCenter _observeTestExecutionForBlock:] + 628 19 XCTest 0x002f1bed -[XCTestDriver _runSuite] + 512 20 XCTest 0x002f29b7 -[XCTestDriver _checkForTestManager] + 300 21 XCTest 0x0033c55b _XCTestMain + 690 22 CoreFoundation 0x1dd45bc3 <redacted> + 10 23 CoreFoundation 0x1dd455a7 <redacted> + 230 24 CoreFoundation 0x1dd43a61 <redacted> + 752 25 CoreFoundation 0x1dc93073 CFRunLoopRunSpecific + 486 26 CoreFoundation 0x1dc92e81 CFRunLoopRunInMode + 104 27 GraphicsServices 0x1f43bbfd GSEventRunModal + 156 28 UIKit 0x22e34acf <redacted> + 574 29 UIKit 0x22e2f201 UIApplicationMain + 150 30 tDefense 0x000d690f main + 106 31 libdyld.dylib 0x1d45e50b <redacted> + 2 ) File: <unknown> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |