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.defaultTestLoader.discover( '.', my_pattern_var);
test_runner = unittest.TextTestRunner();
result = test_runner.run(test_loader)
sys.exit(not result.wasSuccessful())
如果我用等价的鼻代码nose.main()
替换它,它会找到0个测试。
- 我如何获得鼻子发现测试?WITHOUT实际上失去了使用python unittest运行测试的能力。我想使用NOSE作为python unittest的插件来获得clover和覆盖率报告
- 如何让它运行只匹配特定模式的测试?
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)
所以这个基本选项将正则表达式模式从所有标记为test的方法更改为所有标记为load的方法。然而,这并不是运行nose所需要的全部内容,还需要获得某种解析器对象或将一组特定的argv传递给nose。
如果你想传递一组特定的argv让nose解析,只需执行
run(config=nose_config, argv=["foo", "bar"])
否则,你可以在命令行中指定特定于nose的参数,只要你不抛出任何东西,funky nose就不会出错。
在https://github.com/nose-devs/nose/tree/master/nose查看nose源代码,我在那里获得了编写