【问题标题】:Intermittently cannot run unit tests in XCode 8间歇性无法在 XCode 8 中运行单元测试
【发布时间】:2016-09-20 19:48:20
【问题描述】:

我升级到 XCode 8,我正在经历能够运行我的测试的地狱有时...例如,我只是在测试一些代码,并且能够运行我的测试连续 3 次......然后我得到了第 4 次:

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!!!!

更新

我应该提到,我正在尝试在我的 iPad 上运行测试,但我无法在模拟器上运行测试,因为我有太多与 NEON 内在函数有关的代码,因此模拟器无法运行。

但是似乎可行的是,当这种情况发生时,切换到在我的 iPhone 上构建测试,然后在构建时,它只是说“运行测试”并且微调器永远旋转,但实际上没有运行测试。 . 我实际上可以点击我的应用程序并与之交互,这通常不是我在运行测试时得到的行为......无论如何我然后停止了构建,切换回我的 iPad,现在再次运行测试。

【问题讨论】:

标签: xcode


【解决方案1】:

当我运行在被测代码中导致未捕获异常的测试代码时,在我的 iPad(版本 10.0.2 (14A456))上运行的 XCode 8.0 始终出现此错误。可能还有其他示例,但只要被测代码灾难性地失败,就会发生这种情况。

当单元测试因异常而失败时,XCode 无法正常恢复。

我相信这是 XCode 的问题;这个答案提供了一种解决方法。单元测试将在异常处失败,并且后续运行会产生“找不到图像”错误。

我发现的最简单的恢复如下:

  • 将设备目标设置为通用 iOS 设备
  • 断开我的 iPad
  • 重启 iPad
  • 将所有内容重新连接在一起

这是一个演示问题的示例失败;

请注意,这个例子的核心问题是我写了一个糟糕的单元测试;我将 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>

【讨论】:

    【解决方案2】:

    升级到 Xcode 8 / Swift 2.3 后,我遇到了完全相同的问题。删除派生数据,重新启动手机并关闭并重新打开 Xcode 之一刚刚修复它。

    【讨论】:

    • 我也有同样的问题。但是我没有按照您的建议进行所有操作,仍然出现相同的错误。
    • 我提交了一个错误报告,苹果回复说这是另一个错误的重复。所以他们知道这一点,并希望能尽快修复它。
    • 尽管如此,请继续归档。这就是他们知道这对很多人很重要的方式。
    猜你喜欢
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    • 2020-01-24
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 2013-09-27
    相关资源
    最近更新 更多