0

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

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 小时运行一次此测试,并且我打算发送一封电子邮件,其中包含测试发现的所有错误案例。

干杯!

4

2 回答 2

2

好吧,你不能多次失败一次测试。“断言”的想法是,如果函数失败,它会中止函数。如果您想全部命中它们,则必须将上面的三个断言分成三个单独的 test() 方法(即 test_one()、test_two() 等)。此外,您应该使用 self.assertEqual() 而不是普通的断言。

于 2013-05-15T20:06:32.537 回答
0

将测试拆分为多个函数的(可能是首选)方法的替代方法是:

def test_one(self):
    failed = []
    if 1 != 1:
        failed.append("Failed 1")
    if 2 != 2:
        failed.append("Failed 2")
    # ...
    assert not failed, failed
于 2013-05-15T20:12:30.050 回答