iPhone OCUnit,代码139退出异常,它是什么?

时间:2010-02-04 06:51:39

标签: iphone unit-testing

iPhone sdk 3.1.2,xcode 3.1.4,mac os x 10.5.8,

我是一个使用OCUnit的新手带有iphone sdk。我得到的唯一错误是:

错误:测试装置'/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.2.sdk/Developer/usr/bin/otest'存在异常代码139 (可能已经崩溃了。)

有谁知道它是什么?感谢。

编辑:我找到了原因。我把非常愚蠢的代码放在我编写单元测试的类的-dealloc中。像这样:

- (void)dealloc {
    [someObject1 dealloc]; //wtf, dealloc?
    [someObject2 dealloc]; //wtf, dealloc?
    [super dealloc];
}

有时这会导致代码139,有时会导致138。

2 个答案:

答案 0 :(得分:3)

当我看到这个时,通常意味着我的单元测试一旦出现错误逻辑并导致otest崩溃。这不是一个非常有用的答案,因为代码139不是一个非常有用的错误代码。遗憾!

答案 1 :(得分:1)

当OCUnit与代码139崩溃时,它确实可能是任何东西。通常会出现此错误代码,因为它是运行时错误,而不是编译时错误。所以,你正在做一些编译器可以正常使用的东西,但是在运行时它会失败。

在发生这种情况时,有些事情要看一看,但它确实比这更复杂。
1.检查dealloc / alloc区域,确保这些对象确实存在/正确调用 2.检查你的拼写,拼写错误等...(两个变量同样命名,但错误使用?演员?)
3.尝试隔离您的测试,意味着,通过您的测试来找出哪一个失败。由于代码问题,OCUnit崩溃了。
4.如果所有其他方法都失败了,让代码以模拟器而不是OCUnit为目标,那么你应该得到更有意义的松弛痕迹。