簡體   English   中英

如何判斷 python unittest subTest 在運行時是否失敗?

[英]How to tell whether a python unittest subTest has failed as it's running?

Python 文檔給出了在單元測試中使用子測試的示例:

import unittest

class NumbersTest(unittest.TestCase):

    def test_even(self):
        """
        Test that numbers between 0 and 5 are all even.
        """
        for i in range(0, 6):
            with self.subTest(i=i):
                self.assertEqual(i % 2, 0)

在為所有 5 個失敗生成輸出之前,這將運行所有 5 個測試 (i=0..5)。

我怎樣才能打印出沿途的失敗(比如在 with 塊之后的 for 循環中)?

我只需要 Python 3 的答案。

在我的測試中,我有數千個子測試,可能需要很長時間才能完成。 我想知道它在我觀看時是否已經失敗。

您可以向子測試函數添加一些裝飾器,以在測試執行期間創建一些日志記錄。 以下代碼適用於單元測試用例的裝飾,但您可以調整它以使其也適用於子測試。

from functools import wraps
import os

def print_test_name(func):
    """
    Usage: add as a decorator to the test function like:

    @print_test_name
    def my_test_case(self):
        ...

    """
    @wraps(func)
    def inner_func(*args, **kwargs):
        print("\n\rRunning test: ", func.__name__)
        result = func(*args, **kwargs)
        print("Test complete: ", func.__name__)
        return result
    return inner_func

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM