根据nose documentation,--match
选项设置all测试发现的模式:
Files, directories, function names, and class names that match this regular expression are considered tests. Default: (?:\b|_)[Tt]est [NOSE_TESTMATCH]
我经常发现,我更喜欢对文件、目录、函数名和类名使用单独的匹配项,而不是一个必须匹配所有这些项的模式。例如,使用此测试套件:
import unittest
class CoolBeansTest(unittest.TestCase):
def testCool(self):
self.assertEqual(cool_function_takes_forever(), 7)
def testBeans(self):
inst = MyCoolBeansClass()
self.assertEqual(inst.getBeanz(), "CoolBeans")
class WarmBeansTest(unittest.TestCase):
def testWarm(self):
self.assertEqual(warm_function_takes_forever(), 21)
def testBeans(self):
inst = MyWarmBeansClass()
self.assertEqual(inst.getBeanz(), "WarmBeans")
我可能想运行caledtestBeans
的所有测试,但是除了函数之外,对所有东西都使用标准的测试发现模式。除了枚举所有测试,或者将某个grep
表达式管道化到nosetests
之外,是否有一种方法可以运行所有匹配模式的测试?在
Nose提供了一种通过定制
Selector
更改内置测试选择逻辑的方法:在您的例子中,您只需要基于
nose.selector.Selector
创建自己的Selector
类并重写wantMethod
方法:仅供参考,built-in ^{} 的所有
want*
方法都使用matches
函数,该函数使用配置的match
值,默认情况下是(?:\b|_)[Tt]est
。在另请参见^{} is implemented in ^{} 。在
准备好选择器之后,您应该通过制作一个插件将其注入到测试加载程序中:
^{pr2}$相关问题 更多 >
编程相关推荐