即使断言失败,Pyunit也会运行所有测试

时间:2013-05-15 19:47:31

标签: python unit-testing python-unittest

我有一个简单的测试,如下所示:

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

我得到的是,由于第二个断言失败,测试停止,我需要的是运行测试直到结束并在出现时出现断言错误。

这背后的想法是我将使用crontab在我的服务器上每6小时运行一次此测试,我打算发送一封电子邮件,其中包含测试发现的所有错误案例。

干杯!

2 个答案:

答案 0 :(得分:2)

好吧,你不能不止一次失败。 “断言”的想法是,如果失败,它会中止该功能。你必须将上面的三个断言分成三个独立的test()方法(例如test_one(),test_two()等),如果你想要全部击中它们。此外,您应该使用self.assertEqual()而不是plain assert。

答案 1 :(得分:0)

使用单个断言将测试分成多个函数的(可能是首选的)方法的替代方法如下:

def test_one(self):
    failed = []
    if 1 != 1:
        failed.append("Failed 1")
    if 2 != 2:
        failed.append("Failed 2")
    # ...
    assert not failed, failed