为什么python+htmltestrunner生成的测试报告有问题

2025-03-28 23:12:42
推荐回答(2个)
回答1:

htmltestrunner 默认要2条以上的用例才不会生成空的测试报告,你再多加一条,每条测试用例以test开头,再后面标注01/02/03........ 比如:test_baidu_login_01 这样就会生存测试报告了

回答2:

问题:一个百度首页搜索的一个python+unittest测试,代码执行成功,但是用HTMLTestRunner输出的测试报告里面得内容有问题,具体问题是:测试条数,成功数,失败数都为0
代码
# -*- coding: utf-8 -*-
from selenium import webdriver
import os
import time
import unittest
import re
import HTMLTestRunner
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException

class LoginBaiDu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(30)
self.base_url = "
self.verificationErrors = []
self.accept_next_alert = True
print('Done-01')

def test_baidu(self):
self.driver.get(self.base_url)
self.driver.find_element_by_id("su").click()
print('Done-02')
time.sleep(2)
jsClear="$(\"input[id='kw']\").val(\"\")"
self.driver.execute_script(jsClear)
print('Done-03')
time.sleep(2)
jsVal="$(\"input[id='kw']\").val(\"selenium+python\")"
self.driver.execute_script(jsVal)
time.sleep(1)
self.driver.find_element_by_xpath("//input[@id='su']").click()
print('Done-04')
self.driver.close()
print('Done-05')

def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors)
print("test down...")

if __name__=="__main__":
test=unittest.TestSuite()

test.addTest(setUp)
test.addTest(test_baidu)

file_path="D:\\workspace\\PythonLearn\\src\\LoginBaiDu\\result.html"
file_result=open(file_path,'wb')

runner=HTMLTestRunner.HTMLTestRunner(stream=file_result,title=u"百度首页测试",description=u"用例执行情况")

runner.run(test)
file_result.close()

生成的报告截图:

加测试用例的方式错了要
test=unittest.TestSuite()
test.addTest(LoginBaiDu('setUp'))
test.addTest(LoginBaiDu('test_baidu'))
或者直接加入类
test= unittest.TestLoader().loadTestsFromTestCase(LoginBaiDu)