pycharm 使用 HTMLTestRunner 不能生成测试报告解决方法

1. 问题描述

使用 pycharm IDE 使用 unittest 框架,代码执行完成且没有报错,没有在指定目录下生成测试报告。

2. 问题原因

pyCharm 会默认使用自带的框架如 (unittest/pytest) 来执行单元测试,不会执行 main 函数中的代码,所以不生成测试报告。

2.1 代码

test.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from selenium import webdriver	
import unittest
from HTMLTestRunner import HTMLTestRunner

class Baidu(unittest.TestCase):

def setUp(self) -> None:
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(10)
self.base_url = 'http://www.baidu.com'

def test_baidu_search(self):
driver = self.driver
driver.get(self.base_url)
driver.find_element_by_id("kw").send_keys("HTMLTestRunner")
driver.find_element_by_id("su").click()

def tearDown(self) -> None:
self.driver.quit()

if __name__ == '__main__':
print('test11111111')
testunit = unittest.TestSuite()
testunit.addTest(Baidu('test_baidu_search'))

print('test22222222')
# 定义报告存放路径
fp = open('./result.html', 'wb')
# 定义测试报告
runner = HTMLTestRunner(stream=fp, title='百度搜索测试报告', description='用例执行情况:')
# 运行测试用例
runner.run(testunit)
# 关闭报告文件
fp.close()

3. 解决方法

使用普通模式执行该单元测试,切换普通模式方法如下:

3.1 点击 pycharm 右上角的 “Uittests in test_baidu.py” 下拉框,选择 “Edit Configuration”

3.2 点击 “+” 按钮,在下拉菜单中选择 “Python” 选项

3.3 点击 “Script Path” 后的选择路径按钮,选择该文件的存储路径

3.4 在 Unittest 框架下选择该文件,然后点击 “-” 按钮,删除该文件

3.5 然后重新执行该源代码即可在指定目录下生成测试报告

测试报告

4. 相关参考

4.1 代码来源于书《selenium2 自动化测试实战基于 Python 语言》— 虫师
4.2 参考于该 CSDN 博客