试图将命令参数传递到我的鼻子套装脚本中:
from test_cases.test_quick_search import QuickSearchTest
args = ['-s --tc=url:https://our_dev_environment.co']
def run_suite():
all_tests = TestLoader().loadTestsFromTestCase(QuickSearchTest)
suite = LazySuite(all_tests)
run(args,suite=suite)
if __name__ == '__main__':
run_suite()
但它似乎没有做任何事情
答案 0 :(得分:1)
QuickSearchTest
是unittest.TestCase的子类吗? loadTestsFromTestCase只会找到TestCase
子类中的测试。您可以查看all_tests
的内容,看看它是否实际上从您的模块/类中加载了任何内容。
假设run()
是鼻子测试run,使用suite
会发出一个非常沉重的警告:
suite:要运行的套件或测试列表(默认值:无)。传递一个或多个测试列表将绕过所有测试发现和加载。另请注意,如果将unittest.TestSuite实例作为套件传递,则不会使用类,模块和包级别的上下文夹具,并且不会调用许多插件挂钩。如果你想要正常的鼻子行为,要么传递一个测试列表,要么是一个完全配置的nose.suite.ContextSuite。
您通过自己手动组装和运行测试,失去了很多鼻子测试功能(模块和类级别的设置/拆卸等)。
run
接受suite
的测试列表,因此您可以在调用时尝试使用suite= all_tests
。
或者this SO answer可能有帮助。