2013-05-15 2 views
0

У меня есть простой тест, как следующее:Pyunit запустить все тесты, даже если утверждают, терпит неудачу

class TestAPIWrapper(unittest.TestCase): 
    def test_one(self): 
     assert 1==1, "Failed 1" 
     assert 2==1, "Failed 2" 
     assert 2==2, "Failed 3" 

так, как я выполняю эти тесты являются следующие:

python -m unittest my_test_file 

Что я есть, так как второе утверждение терпит неудачу, тест останавливается, и мне нужно запустить тесты до конца и получить ошибки утверждений по мере их появления.

Идея этого заключается в том, что этот тест будет проходить каждые 6 часов на моем сервере с помощью crontab, и я намерен отправить электронное письмо со всеми случаями ошибок, которые были обнаружены.

Cheers!

ответ

2

Ну, вы не можете пропустить один тест более одного раза. Идея «утверждать» заключается в том, что она прерывает функцию, если она терпит неудачу. Вам нужно будет отделить три ваших утверждения выше до трех отдельных методов test() (т. Е. Test_one(), test_two() и т. Д.), Если вы хотите поразить их всех. Кроме того, вы должны использовать self.assertEqual(), а не plain assert.

+0

благодаря будет попробовать. – PepperoniPizza

0

Альтернативы (вероятно, предпочтительный) способ разделения теста на несколько функции с одним утверждают каждое что-то вроде:

def test_one(self): 
    failed = [] 
    if 1 != 1: 
     failed.append("Failed 1") 
    if 2 != 2: 
     failed.append("Failed 2") 
    # ... 
    assert not failed, failed 
Смежные вопросы