使用discover 方法批量运行uniittest 如何控制各脚本间的运行时间间隔
时间: 2024-03-09 11:48:47 浏览: 18
可以使用Python内置的time模块中的sleep函数来控制各脚本间的运行时间间隔。在运行完一个脚本后,通过time.sleep()函数使程序暂停一段时间,再运行下一个脚本。例如,以下代码可以实现每隔5秒钟运行一个unittest脚本:
```python
import time
import unittest
testmodules = [
'test_module1',
'test_module2',
'test_module3'
]
for testmodule in testmodules:
suite = unittest.TestLoader().loadTestsFromName(testmodule)
unittest.TextTestRunner(verbosity=2).run(suite)
time.sleep(5)
```
这段代码将会依次运行名为'test_module1'、'test_module2'和'test_module3'的unittest脚本,并且在运行完一个脚本后暂停5秒钟再运行下一个脚本。你可以根据需要更改time.sleep()函数中的参数,以控制各脚本间的运行时间间隔。
相关问题
使用discover 方法批量运行uniittest 通过Htmltesteunner 运行,如何控制各脚本间的运行时间间隔
可以使用 `time.sleep()` 方法来控制各脚本间的运行时间间隔。在调用 `discover()` 方法时,可以将其返回的测试套件对象传递给 `HtmlTestRunner` 的 `run()` 方法,然后在测试用例执行之间调用 `time.sleep()` 方法来实现时间间隔的控制。具体实现代码如下所示:
```python
import unittest
import time
import HtmlTestRunner
# 定义测试用例路径
test_dir = './tests'
# 加载测试用例并创建测试套件对象
discover = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')
suite = unittest.TestSuite()
suite.addTest(discover)
# 创建 HtmlTestRunner 对象
runner = HtmlTestRunner.HTMLTestRunner(output='./reports')
# 循环遍历测试套件中的测试用例,并调用 time.sleep() 方法来实现时间间隔的控制
for test_case in suite:
runner.run(test_case)
time.sleep(10) # 时间间隔为 10 秒
```
在上面的代码中,我们使用 `for` 循环遍历测试套件中的测试用例,并在每个测试用例执行完成后调用 `time.sleep(10)` 方法来实现时间间隔的控制,其中 `10` 表示时间间隔为 10 秒。
add_test()没有这个方法
很抱歉,我的回答有误。`BeautifulReport` 模块并没有 `add_test()` 方法。
你可以尝试使用 `BeautifulReport` 的 `BeautifulReport.add_test_case()` 方法来添加测试用例到报告中。具体来说,可以按照以下步骤修改你的代码:
1. 在导入 `unittest` 和 `DeviceManagement_testcases` 后,导入 `beautifulreport` 模块。例如:
```python
import unittest
import DeviceManagement_testcases
from BeautifulReport import BeautifulReport
```
2. 使用 `unittest.TestLoader()` 创建一个 `loader` 对象,并使用 `loader.discover()` 方法来发现测试用例。例如:
```python
loader = unittest.TestLoader()
suite = loader.discover('.')
```
3. 创建一个 `BeautifulReport` 对象,并使用 `BeautifulReport.add_test_case()` 方法将测试用例添加到报告中。例如:
```python
report = BeautifulReport(suite)
report.add_test_case(suite, 'DeviceManagement Testcases')
report.report(filename='report.html', description='DeviceManagement Test Report', log_path='.')
```
完整的代码如下所示:
```python
import unittest
import DeviceManagement_testcases
from BeautifulReport import BeautifulReport
if __name__ == '__main__':
# discover test cases
loader = unittest.TestLoader()
suite = loader.discover('.')
# generate report
report = BeautifulReport(suite)
report.add_test_case(suite, 'DeviceManagement Testcases')
report.report(filename='report.html', description='DeviceManagement Test Report', log_path='.')
```
这样可以在使用 `runner` 方式进行测试的同时,也能够生成 `BeautifulReport` 的测试报告。