0

我正在使用 Python Nose 并想打印运行测试的类型,比如它是 Doctest 还是 unittest 等?如何才能做到这一点?

谢谢。

4

3 回答 3

1

使用--with-doctests意味着您正在运行文档测试。doctest 之外的任何内容都可以视为单元测试。AFAIK,它们不是相互排斥的,所以如果你启用了--with-doctests.

话虽如此,文档测试通常单元测试的一种形式,所以我不太确定你想要达到什么目的。

于 2012-10-09T07:14:08.090 回答
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

安装后,运行如下:

nosetests --with-customname -sv test_directory

请注意,这是未经测试的。

于 2012-12-15T03:02:00.303 回答
0

这可能有点脆弱。但请注意,nosetests 只是在 unittest 之上

import inspect

def is_nose_test():
    assert "nose" in inspect.stack()[1][1]
于 2012-10-09T07:26:53.960 回答