2013-05-15 44 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,我打算发送一个电子邮件与测试发现的所有错误情况。

干杯!

回答

2

那么,你不能多次失败一次测试。 “断言”的思想是,如果失败,它会中止功能。如果你想全部击中它们,你将不得不将上面的三个断言分成三个独立的test()方法(即test_one(),test_two()等)。此外,你应该使用self.assertEqual()而不是简单的断言。

+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