suite = unittest.TestSuite() suite.addTest(DeviceManagement_testcases.TestConnect('test01_connect')) suite.addTest(DeviceManagement_testcases.TestConnect('test02_disconnect')) result = TextTestRunner().run(suite) br = BeautifulReport(result) br.report("离线上位机_设备管理",filename="devicemanagement.html", report_dir="Test_report")执行提示AttributeError: 'TextTestResult' object has no attribute 'run'
时间: 2024-03-19 09:45:44 浏览: 55
python_plugin_unittest.rar_The Test_unittest python
根据您提供的代码,您首先使用unittest.TestSuite()创建了测试套件,然后使用suite.addTest()方法向测试套件中添加了两个测试用例。接下来,您使用TextTestRunner().run()方法运行了测试套件,并将测试结果保存到result变量中。最后,您使用BeautifulReport的report()方法来生成HTML报告,并将result作为参数传递给BeautifulReport。
根据错误提示,问题是由于TextTestResult对象没有run属性导致的。TextTestResult是unittest框架中的测试结果对象,它只能用于生成文本报告,而不能用于BeautifulReport生成HTML报告。因此,您需要将result变量改为unittest.TestResult()对象,并重新运行测试用例。以下是修改后的示例代码:
```python
import unittest
from BeautifulReport import BeautifulReport
class TestConnect(unittest.TestCase):
def test01_connect(self):
self.assertEqual(1, 1)
def test02_disconnect(self):
self.assertEqual(2, 2)
if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(TestConnect('test01_connect'))
suite.addTest(TestConnect('test02_disconnect'))
result = unittest.TestResult()
suite.run(result)
br = BeautifulReport(suite)
br.report("离线上位机_设备管理",filename="devicemanagement.html", report_dir="Test_report")
```
在上面的示例代码中,我们将result变量改为unittest.TestResult()对象,并使用suite.run(result)方法运行测试套件。然后,我们将suite对象传递给BeautifulReport,并调用report()方法来生成HTML报告。
请注意,我们还将测试用例从DeviceManagement_testcases.py文件中移动到了同一文件中,以便更好地演示代码。您可以将其改为您自己的测试用例文件。
如果您仍然无法生成HTML网页报告,请提供更多的错误信息,以便我能够更好地帮助您解决问题。
阅读全文