2013-11-22 3 views
2

У меня есть набор тестов, в котором есть много тестовых классов, каждый из которых имеет множество тестов. Теперь, если я определяюteardown для всего набора тестов

+ (void)tearDown 

в любом классе, то он будет работать после всех испытаний только этого класса. и

- (void)tearDown 

будет выполняться после каждого теста. Я хочу определить метод tearDown и хочу, чтобы он запускался после всех тестов всех классов. Fox, например, если у меня есть 5 классов, каждый из которых имеет по 7 тестов каждый. Поэтому я хочу запустить эту функцию tearDown после всех 35 тестов.

+0

- В какой тестовой среде вы используете? - Зачем вам последний раз? –

+0

Я использую рассылку. И в xcode 5 моя генерация тестового покрытия не удалась. Я искал и обнаружил, что мы должны запустить __gcov_flush, чтобы получить файлы .gcda. Для этого я должен запустить эту функцию после целого набора тестов. –

ответ

0

Поскольку вы ищете способ вызова __gcov_flush() после того, как все тесты закончили , см. http://qualitycoding.org/ios-7-code-coverage/. Последний код из Google Toolbox для Mac показывает, как это сделать с помощью тестовых наблюдателей, с версиями для SenTestingKit и XCTest.

0

Если я правильно понимаю ваш вопрос, вы можете принять к сведению завершения каждого метода с использованием глобального переменным/флага, используя completion block methods так:

+ (void)myMethod:(UIView *)exampleView completion:(void (^)(BOOL finished))completion { 
    if (completion) { 
     completion(finished); 
    } 
} 

Посмотрите на this для лучшего объяснения.

Затем создать метод, который проверяет, если все taskes выполнены и что проходит заключительный тест, когда это необходимо, как это:

- (void)finalTest { 
    if (CHECK GLOBAL FLAG FOR COMPLETION OF OTHER TASKES) { 
     // do final test 
    } else { 
     // repeat check after 0.1 seconds 
     [self performSelector:@selector(finalTest) 
       withObject:nil 
       afterDelay:0.1]; 
    } 
} 
+0

Да! Я могу сделать это, но для этого мне придется изменить мои существующие тесты, которые мне не нужны. Не могу ли я добавить какую-то специальную функцию, например, разрывы для целого набора? –

Смежные вопросы