我试图找出是否有办法让鼻子测试跑步者运行所有测试,除了具有特定标签的测试.看起来这可以通过属性实现,但我不知道是否有办法用标签来做,标签是属性的一个子集.
目前我通过调用使用标签
nosetests -a tags='tag'
我的标记测试看起来像:
@attr(tags=['foo', 'bar', 'baz'])
def test_some_stuff(self):
但如果我想运行除’baz’标记之外的所有测试,我该怎么做?
我试过像
nosetests -A 'not baz'
nosetests -a '!baz'
nosetests tags='!baz'
但是这些似乎对属性没有任何影响.我没有看到在文档中排除标记的示例:http://nose.readthedocs.org/en/latest/plugins/attrib.html
我宁愿不必添加一个新标签,只是为了排除我正在使用的这个大型测试套件,并且必须记住总是添加一个假的“排除标签”.
解决方法:
你需要压扁你的标签.指定它的方式意味着您有一个属性,具有复杂的列表值.
而是将整个标记范围指定为直接属性.
# coding: utf-8
from nose.plugins.attrib import attr
@attr("foo", "bar", "baz")
def test1():
print "I'm test1"
@attr("foo")
def test_2():
print "I'm test2"
然后nosetests -a’!bar’/ tmp / test.py按需运行.