我正在使用Python Nose并且想要打印测试的类型,比如它是Doctest还是unittest左右?怎么办呢?
感谢。
答案 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]