在Python Nose中打印测试类型

时间:2012-10-09 07:09:52

标签: python nose nosetests

我正在使用Python Nose并且想要打印测试的类型,比如它是Doctest还是unittest左右?怎么办呢?

感谢。

3 个答案:

答案 0 :(得分:1)

使用--with-doctests表示您正在运行doctests。 doctest之外的任何东西都可以被视为单元测试。 AFAIK,它们并不相互排斥,因此如果您启用--with-doctests,则无法严格判断自己正在运行哪个。

话虽如此,doctests一般 是一种单元测试,所以我不太清楚你想用这个来达到什么目的。

答案 1 :(得分:1)

您可以创建自己的插件来更改测试的打印名称。然后,当您使用详细标记时,将打印测试类型。尝试这样的事情:

from nose.plugins import Plugin
import doctest

class CustomName(Plugin):
    def describeTest(self, test):
        if isinstance(test, doctest.DocTestCase):
            return "Doctest: %s" % test
        else:
            return "Unittest: %s" % test

After installing it,运行方式如下:

nosetests --with-customname -sv test_directory

警告,这是未经测试的。

答案 2 :(得分:0)

这可能有点脆弱。但请注意,测试只是在单元测试之上

import inspect

def is_nose_test():
    assert "nose" in inspect.stack()[1][1]