sanjieyu 发表于 2022-10-7 08:00:35

HTMLTestRunner执行所有的测试为什么只能成功执行第一个py文件?

本帖最后由 sanjieyu 于 2022-10-7 08:02 编辑


遇到一个奇怪的问题,我用selenium+python+unittest来做UI的自动化测试,我写了一些python文件,每个python文件里面有个class,class里面包括若干测试用例函数,为了提高测试效率,所以我使用了setUpClass和 tearDownClass。 然后每个文件单独执行都是成功的,能运行到每条用例。然后我写了一个sendreport的python文件,里面调用HTMLTestRunner的defaultTestLoader来执行整个所有的测试python文件,这时候只能成功执行第一个python文件里面的所有测试用例,从第二个python文件开始就报错了,说读不到配置文件。有大侠知道是怎么回事吗?
我的单独的python测试文件是:import unittest
from seleniumimport webdriver
from timeimport *
from Test.admin_adhocrequestimport *
from Test.read_configimport *

class AdhocRequestTest(unittest.TestCase,AdhocRequest_Page):
    @classmethod
    def setUpClass(cls):
      cls.driver =webdriver.Firefox()
      cls.driver.maximize_window()
      cls.config_read =ReadConfig()
      cls.url = cls.config_read.get_url()
      cls.admin_username = cls.config_read.admin_username()
      cls.admin_password = cls.config_read.admin_password()
      cls.login = Admin_Portal(cls.driver)
      cls.driver.get(cls.url)
      cls.login.login(cls.admin_username,cls.admin_password)
      cls.driver.implicitly_wait(5)

    @classmethod
    def tearDownClass(cls):
      cls.driver.quit()

    def test_AR_001(self):                pass
    def test_AR_002(self):   
         pass
send report文件是:if __name__ == "__main__":   
    test_dir = "C:\\Test"   
    test_report = "C:\\Report"   
    discover = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')   
    now = time.strftime("%Y-%m-%d_%H_%M_%S")   
    filename = test_report + '\\' + now + '_result.html'   
    fp = open(filename, 'wb')   
    runner = HTMLTestRunner(stream=fp, title=_Automation_Test_Report', description=''' Automation Test starts at 18:00 everyday''')   
    runner.run(discover)


sanjieyu 发表于 2022-10-7 08:03:33

我觉得问题大概率是出在了每个py文件里面的setUpClass和 tearDownClass上面,但我不知道具体原因,也不知道如何去修改。
页: [1]
查看完整版本: HTMLTestRunner执行所有的测试为什么只能成功执行第一个py文件?