鼻子测试跑步者找到除标签之外的所有测试

时间:2015-05-28 20:37:50

标签: python tags nosetests

我试图找出是否有办法让鼻子测试跑步者运行所有测试,除了具有特定标签的测试。看起来这可以通过属性实现,但我不知道是否有办法使用标记,这是属性的一个子集。

目前我通过调用

来使用标签
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

我宁愿不必添加新标记,只是为了排除我正在使用的大型测试套件,并且必须记住始终添加一个假的排除标记'。

1 个答案:

答案 0 :(得分:5)

您需要展平标签。指定它的方式意味着您具有一个属性,其复杂值为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按需运作。