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 博客