让Cases.py文件包含已定义的测试套件:
def tests():
setup = {
'full': (
Clients.TestClients,
)
}
cases = os.getenv('testrun', 'full')
all_tests = ()
for case in setup[cases]:
all_tests = itertools.chain(all_tests, TestLoader().loadTestsFromTestCase(case))
suite = LazySuite(all_tests)
nose.run(suite=suite)
还为用户提供具有已定义方法和类(如模板)的类:
class Admin(MainTemplate):
@classmethod
def setUpClass(cls):
cls.login(cls.autotest_admin, cls.default_password)
@classmethod
def tearDownClass(cls):
cls.logout()
并提交测试文件:
class TestClients(Admin):
def test_one(self):
print(1)
如果手动(从ide)运行类,将执行setUpClass 但是如果运行Cases.py文件,则不会执行setUpClass
怎么了?
UPD :
我只是理解同样的事情,TestLoader().loadTestsFromTestCase(case)
只能加载test_函数,而不是加载setUpClass
方法的所有文件,这可能是真实的故事吗?
我如何以编程方式模拟正在运行的整个文件(例如来自IDE)?