在设备上运行OCUnit应用程序测试套件时偶尔会出现错误

Kri*_*tad 15 iphone testing unit-testing ocunit

在运行应用程序测试时(即在设备上),我的OCUnit测试套件出现了一些问题.偶尔,我会收到一个似乎从OCUnit类抛出的棘手错误.我一直在试图查看添加到测试套件中的文件,但无法理解它.

我在设置测试目标时遵循了Apple文档并查看了其他教程,从而产生了以下目标(以及缩进的依赖项):

LogicTests

MyApp LogicTests

ApplicationTests MyApp

MyAppTesting ApplicationTests

最后一个(MyAppTesting)是我在设备上运行以启动测试套件的那个.

如上所述,测试无法启动有时会在控制台中抛出以下输出:

2010-11-17 12:02:48.537 VCCTesting[12018:307] *** Assertion failure in -[SenTestClassEnumerator init], /SourceCache/OCUnit/OCUnit-1685/SourceCode/SenTestingKit/SenTestClassEnumerator.m:137

2010-11-17 12:02:48.556 VCCTesting[12018:307] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'objc_getClassList returned more classes than it should have.'
*** Call stack at first throw:
(
0   CoreFoundation                      0x30897ed3 __exceptionPreprocess + 114
1   libobjc.A.dylib                     0x3002f811 objc_exception_throw + 24
2   CoreFoundation                      0x30897d15 +[NSException raise:format:arguments:] + 68
3   Foundation                          0x349f932f -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 62
4   SenTestingKit                       0x20107c29 -[SenTestClassEnumerator init] + 292
5   SenTestingKit                       0x201079fd +[SenTestClassEnumerator classEnumerator] + 24
6   SenTestingKit                       0x2010777d +[NSObject(SenTestRuntimeUtilities) senAllSubclasses] + 92
7   SenTestingKit                       0x201067b5 +[SenTestSuite updateCache] + 28
8   SenTestingKit                       0x20106753 +[SenTestSuite suiteForBundleCache] + 54
9   SenTestingKit                       0x201065db +[SenTestSuite structuredTests] + 14
10  SenTestingKit                       0x201065a1 +[SenTestSuite allTests] + 40
11  SenTestingKit                       0x20106573 +[SenTestSuite defaultTestSuite] + 14
12  SenTestingKit                       0x201057a3 +[SenTestProbe specifiedTestSuite] + 106
13  SenTestingKit                       0x20105d83 +[SenTestProbe runTests:] + 94
14  Foundation                          0x349c7e8d __NSFireDelayedPerform + 368
15  CoreFoundation                      0x3084e7fb __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 14
16  CoreFoundation                      0x3084e2ad __CFRunLoopDoTimer + 860
17  CoreFoundation                      0x3081f7a5 __CFRunLoopRun + 1088
18  CoreFoundation                      0x3081f277 CFRunLoopRunSpecific + 230
19  CoreFoundation                      0x3081f17f CFRunLoopRunInMode + 58
20  GraphicsServices                    0x31e445f3 GSEventRunModal + 114
21  GraphicsServices                    0x31e4469f GSEventRun + 62
22  UIKit                               0x31e51123 -[UIApplication _run] + 402
23  UIKit                               0x31e4f12f UIApplicationMain + 670
24  VCCTesting                          0x000234ff main + 70
25  VCCTesting                          0x00002538 start + 40
)
terminate called after throwing an instance of 'NSException'
Run Code Online (Sandbox Code Playgroud)

有谁知道什么可能是错的?

感谢任何帮助,Kristofer

PS我已经在App dev论坛上发布了这个,但还没有运气呢:https://devforums.apple.com/message/333890

ale*_*xtk 19

你有NSZombieEnabled吗?当我在我的单元测试启动目标的参数中将NSZombieEnabled设置为YES时,我遇到了这个问题.我已经尝试了一切(清理/退出XCode /休息模拟器内容).到目前为止唯一的解决方案是在我的单元测试启动中禁用僵尸