鼻子测试运行器找到除标签之外的所有测试

Posted

技术标签:

【中文标题】鼻子测试运行器找到除标签之外的所有测试【英文标题】:Nose test runner finding all tests except a tag 【发布时间】:2015-08-11 13:21:27 【问题描述】:

我试图弄清楚是否有办法让鼻子测试运行器运行所有测试,除了带有特定标签的测试。看起来这对于属性是可能的,但我不知道是否有办法使用标签来做到这一点,标签是属性的子集。

目前我通过调用来使用标签

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】:

您需要展平您的标签。您指定它的方式意味着您有 one 属性,具有复杂的列表值。

相反,将整个标签范围指定为直接属性。

 # 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 按需要工作。

【讨论】:

啊,有道理。只是在尝试这个想法,感谢帮助!

以上是关于鼻子测试运行器找到除标签之外的所有测试的主要内容,如果未能解决你的问题,请参考以下文章

XCTest 测试运行器在完成运行测试之前以代码 -1 退出

从 coverage.py 运行测试与从测试运行器运行覆盖

OCUnit/XCode 单元测试的优秀测试运行器

是否可以在运行时使用测试运行器将测试用例注入soapui?

Intelij 2019.1更新中断JUnit测试

在 Visual Studio Code 编辑器中完全禁用 Jest 测试运行器的自动运行