我正在使用 Python Nose 并想打印运行测试的类型,比如它是 Doctest 还是 unittest 等?如何才能做到这一点?
谢谢。
使用--with-doctests
意味着您正在运行文档测试。doctest 之外的任何内容都可以视为单元测试。AFAIK,它们不是相互排斥的,所以如果你启用了--with-doctests
.
话虽如此,文档测试通常是单元测试的一种形式,所以我不太确定你想要达到什么目的。
您可以创建自己的插件来更改测试的打印名称。然后,当您使用详细标志时,将打印测试类型。尝试这样的事情:
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
请注意,这是未经测试的。
这可能有点脆弱。但请注意,nosetests 只是在 unittest 之上
import inspect
def is_nose_test():
assert "nose" in inspect.stack()[1][1]