unittest使用ddt数据驱动后使用多线程执行用例后 BeautifulReporter生成的报告完全错乱
这可能是由于多线程执行用例导致的并发问题,导致BeautifulReporter生成的报告出现错乱。建议尝试以下解决方案:
- 在使用ddt数据驱动时,设置为单线程执行用例,可以通过在unittest.main()中添加参数来实现:
if __name__ == '__main__':
import sys
import unittest
from ddt import ddt, data, unpack
suite = unittest.TestLoader().loadTestsFromTestCase(TestClass)
unittest.TextTestRunner(verbosity=2).run(suite)
修改为:
if __name__ == '__main__':
import sys
import unittest
from ddt import ddt, data, unpack
suite = unittest.TestLoader().loadTestsFromTestCase(TestClass)
unittest.TextTestRunner(verbosity=2).run(suite)
-
使用其他报告生成工具,如HTMLTestRunner或Allure等,这些工具支持多线程执行用例并生成正确的报告。
-
在使用BeautifulReporter时,可以尝试使用锁来控制并发访问,避免出现错乱的情况。例如:
import threading
lock = threading.Lock()
class TestClass(unittest.TestCase):
@lock.acquire()
def test_example(self):
# test code here
lock.release()
以上是一些可能的解决方案,具体需要根据实际情况进行调整。
原文地址: https://www.cveoy.top/t/topic/bQDj 著作权归作者所有。请勿转载和采集!