鼻子测试运行器找到除标签之外的所有测试
Nose test runner finding all tests except a tag
我想弄清楚是否有办法进行鼻子测试 运行ner 运行 所有测试,但带有特定标签的测试除外。看起来这对属性来说是可能的,但我看不出是否有办法用标签来做到这一点,标签是属性的一个子集。
目前我通过调用
来使用标签
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
我宁愿不必添加一个新标签来排除我正在使用的这个大型测试套件,并且必须记住总是添加一个假的 'exclusion tag'。
您需要扁平化标签。您指定它的方式意味着您有 one 属性,其复杂值为 list.
相反,将整个标签范围指定为直接属性。
# 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
就可以正常工作了。
我想弄清楚是否有办法进行鼻子测试 运行ner 运行 所有测试,但带有特定标签的测试除外。看起来这对属性来说是可能的,但我看不出是否有办法用标签来做到这一点,标签是属性的一个子集。
目前我通过调用
来使用标签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
我宁愿不必添加一个新标签来排除我正在使用的这个大型测试套件,并且必须记住总是添加一个假的 'exclusion tag'。
您需要扁平化标签。您指定它的方式意味着您有 one 属性,其复杂值为 list.
相反,将整个标签范围指定为直接属性。
# 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
就可以正常工作了。