单元测试无法在错误
的设备上运行[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[1]
应用程序在未运行单元测试时正常启动,并且单元测试在相同设备类型和操作系统(iPhone 6,iOS 10.3.3)的模拟器中运行正常。
完整堆栈跟踪
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
frame #0: 0x0000000180c79014 libsystem_kernel.dylib`__pthread_kill + 8
frame #1: 0x0000000180d43264 libsystem_pthread.dylib`pthread_kill + 112
frame #2: 0x0000000180bed9c4 libsystem_c.dylib`abort + 140
frame #3: 0x00000001806b91b0 libc++abi.dylib`abort_message + 132
frame #4: 0x00000001806d2c04 libc++abi.dylib`default_terminate_handler() + 304
frame #5: 0x00000001806e0820 libobjc.A.dylib`_objc_terminate() + 124
frame #6: 0x00000001806cf5d4 libc++abi.dylib`std::__terminate(void (*)()) + 16
frame #7: 0x00000001806cf1a8 libc++abi.dylib`__cxa_rethrow + 144
frame #8: 0x00000001806e06f8 libobjc.A.dylib`objc_exception_rethrow + 44
frame #9: 0x0000000181b5ae10 CoreFoundation`CFRunLoopRunSpecific + 532
frame #10: 0x0000000187e1afc8 UIKit`-[UIApplication _run] + 652
frame #11: 0x0000000187e15c9c UIKit`UIApplicationMain + 208
* frame #12: 0x00000001000d08d0 <AppName>`main(argc=9, argv=0x000000016fd33038) at main.m:16
frame #13: 0x0000000180b6959c libdyld.dylib`start + 4
启动单元测试时看起来像初始化问题。这些工作之前,但不再是,不知道可能会有什么不同。我已经恢复到以前的版本,我确信测试在哪里运行,我仍然发现同样的问题。它看起来像我的环境中的东西。
我尝试的事情没有效果:
可能是什么原因?
答案 0 :(得分:0)
我没有找到根本原因,但是我已经应用this technique来切换AppDelegate用于虚拟加速单元测试,这是我想要做的事情,现在运行时没有崩溃单元测试。
因此,它必须是AppDelegate中的某些内容导致应用程序仅在运行单元测试时崩溃,而不是在正常运行应用程序时崩溃。