间歇性地无法运行在XCode 8单元测试
我升级到XCode 8,我正在经历我能够运行我的测试有时地狱...例如,我只是测试一些代码,并能够连续运行我的测试3次......然后第4次我:间歇性地无法运行在XCode 8单元测试
使dyld:无法加载插入库“PLATFORMS /iPhoneOS.platform/Developer/Library/PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection',因为找不到图像
***如果您认为此错误代表错误,请认真答复请将日志文件附加到/Users/patrick/Library/Developer/Xcode/DerivedData/MyApp-hjfppqmgxqrprucknvwtakynpqxs/Logs/Test/2B6C2EAE-5C13-40C9-BACE-3A00AA74F3EF/Session-UnitTests-2016-09-20_124123-gk3pW0.log
我重新启动了我的iOS设备,重新启动了我的电脑,删除了镂空的数据等等......它将不再运行测试。 ARRRGH !!!!
UPDATE
我应该提,我想运行在我的iPad的测试,我不能在模拟器上运行测试,因为我有太多的代码做NEON内在,和所以模拟器不会运行。
但是,当发生这种情况时,切换到在我的iPhone上构建测试,然后在构建时,它只是说“正在运行测试”,并且微调控制器永远旋转,但实际上没有测试正在运行。 ..我实际上可以点击我的应用程序并与它交互,这通常不是我在运行测试时得到的行为......无论如何,我停止构建,切换回我的iPad,然后再次运行测试。
当我在测试代码中运行导致未捕获的异常的测试代码时,我在我的iPad(版本10.0.2(14A456))上运行的XCode 8.0出现此错误。可能还有其他例子,但是它在任何时候发生灾难性的测试代码时都会发生。
当单元测试失败并出现异常时,XCode无法正常恢复。
我相信这是XCode的问题;这个答案提供了一种解决方法。单元测试将在异常时失败,并且后续运行会产生'未找到图像'错误。
我发现最简单的恢复如下:
- 设置设备目标通用iOS设备
- 断开我的iPad
- 重新启动iPad的
- 一切连接到一起
这是一个示例失败,证明问题;
请注意,本例中的核心问题是我写了一个错误的单元测试;我将一个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>
http://stackoverflow.com/questions/32405833/xcode-7-0-xctest-dyld-could-not-load-inserted-library-idebundleinjection – matt