Python 2.7 nose不会使用load_测试发现单元测试
Python 2.7.1 鼻1.1.2 我已经阅读了有关这方面的相关问题,但它们没有帮助。我有如下的测试用例 例如在Python 2.7 nose不会使用load_测试发现单元测试,python-2.7,nose,Python 2.7,Nose,Python 2.7.1 鼻1.1.2 我已经阅读了有关这方面的相关问题,但它们没有帮助。我有如下的测试用例 例如在my_tests.py def load_tests(loader, tests, pattern): return unittest.TestSuite(MyTest() for scenario_name in list) 我使用load_tests方法有几个这样的模块,我使用unittest运行它们,如下所示 test_loader = unittest.defau
my_tests.py
def load_tests(loader, tests, pattern):
return unittest.TestSuite(MyTest() for scenario_name in list)
我使用load_tests方法有几个这样的模块,我使用unittest运行它们,如下所示
test_loader = unittest.defaultTestLoader.discover( '.', my_pattern_var);
test_runner = unittest.TextTestRunner();
result = test_runner.run(test_loader)
sys.exit(not result.wasSuccessful())
如果我将其替换为等效的nose代码nose.main()
,它将找到0个测试
问题
很抱歉回来这么晚。我们基本上做了与您在控制台脚本中尝试做的相同的事情,只是我们将所有测试模块命名为integration_foo.py。无论如何,解决方案很简单,只需通过编程运行nose即可
import re
from nose.config import Config
TEST_REGEX = '(?:^|[\\b_\\./-])[Ll]oad'
# Change the test match pattern
nose_config = Config()
nose_config.testMatch = re.compile(TEST_REGEX)
# Specify the use of a Plugin Manager, load plugins
nose_config.plugins = BuiltinPluginManager()
nose_config.plugins.loadPlugins()
run(config=nose_config)
因此,这个基本选项将nose正在寻找的正则表达式模式从标记为test的所有方法更改为标记为load的所有方法。然而,这并不是运行nose所需要的,还需要获得某种解析器对象或向nose传递一组特定的argv
如果您想传递一组特定的argv以供nose解析,只需执行以下操作
run(config=nose_config, argv=["foo", "bar"])
否则,您可能可以在命令行中指定特定于nose的参数,只要您不加入任何funky nose不应该出错的内容
请查看nose的源代码,我从中获得了撰写此文章所需的所有信息这个问题现在是否与您相关?请回答。我希望能够找到使用load_测试方法创建的鼻子测试。