鼻子测试套件 - 传递命令参数

时间:2016-06-02 15:25:53

标签: python nose

试图将命令参数传递到我的鼻子套装脚本中:

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()

但它似乎没有做任何事情

1 个答案:

答案 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可能有帮助。