我正在研究一种设计模式,使我的python单元测试成为一个POM,到目前为止,我已经在模块HomePageObject.py
,FilterPageObject.py
中编写了我的页面类,我的基类(对于常见的东西){ {1}} {}} {}} {}} {}}}
在跑步者类中,我使用TestBase
从模块的测试用例类中获取所有测试。在两个测试用例模块中,测试类的名称都是相同的“BaseTest.py
”,方法名称也是相同的“TestCase1.py
”
由于在跑步者中输入名称时这些名称是混乱的,因此只有一项测试正在执行。我希望python扫描我为其中的测试指定的所有模块,并运行那些甚至类的名称相同。
我知道TestCase2.py
可能对此有所帮助,但不确定我在这里如何实现它。有什么建议?
runner.py
loader.getTestCaseNames
Test
即使一个测试用例正在通过,也会出现一些错误消息
testName
答案 0 :(得分:0)
我是通过使用模式搜索测试类的所有模块然后使用__import__(modulename)
并使用所需参数调用其Test
类来完成此操作的,
这是我的 runner.py
import unittest
import glob
loader = unittest.TestLoader()
suite = unittest.TestSuite()
test_file_strings = glob.glob('Test*.py')
module_strings = [str[0:len(str)-3] for str in test_file_strings]
for module in module_strings:
mod = __import__(module)
test_names =loader.getTestCaseNames(mod.Test)
for test in test_names:
suite.addTest(mod.Test(test,"chrome"))
runner = unittest.TextTestRunner()
result = runner.run(suite)
这有效,但仍在寻找一些有组织的解决方案。 (不确定为什么第二次显示Ran 0测试在0.000s)
Finding files... done.
Importing test modules ... ..done.
----------------------------------------------------------------------
Ran 2 tests in 37.491s
OK
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK