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

私が得たのは、2 番目のアサートが失敗したため、テストが停止したことです。テストを最後まで実行し、表示されるアサーション エラーを取得する必要があります。

この背後にあるアイデアは、crontab を使用してサーバーで 6 時間ごとにこのテストを実行し、テストで見つかったすべてのエラー ケースを電子メールで送信することです。

乾杯 !

4

2 に答える 2

2

1 つのテストに 2 回以上失敗することはできません。「アサート」の考え方は、失敗した場合に関数を中止することです。上記の 3 つの assert を 3 つの個別の test() メソッド (つまり、test_one()、test_two() など) に分けて、それらすべてをヒットする必要があります。また、単純なアサートではなく、self.assertEqual() を使用する必要があります。

于 2013-05-15T20:06:32.537 に答える
0

テストを複数の関数に分割し、それぞれ 1 つのアサートを行う (おそらく推奨される) 方法の代わりに、次のようなものがあります。

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 に答える