iPhone OCUnit, ненормально вышел с кодом 139, что это? - PullRequest
3 голосов
/ 04 февраля 2010

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 ]

3 голосов
/ 04 февраля 2010

Когда я это вижу, это обычно означает, что один из моих модульных тестов имеет неверную логику и вызвал сбой otest. Это не очень полезный ответ, потому что код 139 не очень полезный код ошибки. Извините! * * 1002

1 голос
/ 28 октября 2010

Когда OCUnit падает с кодом 139, это действительно может быть что угодно. Обычно этот код ошибки возникает потому, что это ошибка времени выполнения, а не ошибка времени компиляции. Итак, вы делаете что-то, с чем хорошо работает компилятор, но во время выполнения он не работает.

Вот некоторые вещи, на которые нужно взглянуть, когда это произойдет, но это действительно может быть более сложным, чем это.
1. Убедитесь, что в ваших областях dealloc / alloc эти объекты действительно существуют / вызываются правильно.
2. Проверьте правильность написания, опечатки и т. Д. (Две переменные с одинаковыми именами, но неправильно используются? Бросает?)
3. Постарайтесь изолировать свои тесты, то есть проработайте тесты, чтобы выяснить, какие из них не пройдены. OCUnit падает из-за проблемы с вашим кодом.
4. Если все остальное не помогло, позвольте коду ориентироваться на симулятор вместо OCUnit, вы должны получить более значимые следы провала таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...