Любой способ запустить код в SenTest только в случае успеха? - PullRequest
3 голосов
/ 27 января 2012

В моих модульных тестах Mac Cocoa я хотел бы вывести некоторые файлы как часть процесса тестирования и удалить их после завершения теста, , но только при отсутствии сбоев . Как это можно сделать (и / или какой самый чистый способ сделать это)?

Ответы [ 2 ]

2 голосов
/ 28 января 2012

Ваш вопрос вызвал у меня любопытство, поэтому я в него заглянул!

Полагаю, я бы переопределил метод failWithException: в классе SenTestCase (класс, в котором запускаются ваши тесты), и установил флаг "keep output files" или что-то еще до вызова super способ.

Вот что SenTestCase.h говорит об этом методе:

/*"Failing a test, used by all macros"*/
- (void) failWithException:(NSException *) anException;

Таким образом, при условии, что вы используете только макросы SenTest для тестирования и / или неудачи (и, скорее всего, это так в вашем случае), что должно охватывать любой сбой теста.

0 голосов
/ 28 января 2012

Я никогда не копался в сценариях для этого, но кажется, что вы можете настроить, как вы вызываете сценарий, который фактически выполняет ваши тесты, чтобы сделать это. В Xcode 4 посмотрите на последний шаг на вкладке Build Phases вашей тестовой цели. Шахта содержит это:

# Run the unit tests in this test bundle.
"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests"

Я не просматривал содержимое этого скрипта или многих подписок, которые он загружает на моей машине, но, по-видимому, они вызывают otest или какой-либо другой исполняемый файл тестового стенда, и результаты теста будут возвращены этому сценарию. Через некоторое время, ознакомившись с этими сценариями, вы, вероятно, сможете найти простой способ условно удалить выходные файлы на основе результатов теста.

...