这可能是由于多线程执行用例导致的并发问题,导致BeautifulReporter生成的报告出现错乱。建议尝试以下解决方案:

  1. 在使用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)
  1. 使用其他报告生成工具,如HTMLTestRunner或Allure等,这些工具支持多线程执行用例并生成正确的报告。

  2. 在使用BeautifulReporter时,可以尝试使用锁来控制并发访问,避免出现错乱的情况。例如:

import threading

lock = threading.Lock()

class TestClass(unittest.TestCase):

    @lock.acquire()
    def test_example(self):
        # test code here
    lock.release()

以上是一些可能的解决方案,具体需要根据实际情况进行调整。

unittest使用ddt数据驱动后使用多线程执行用例后 BeautifulReporter生成的报告完全错乱

原文地址: https://www.cveoy.top/t/topic/bQDj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录