我使用 unittest
(实际上是 unittest2
) 进行 Python 测试,配合 Python Mock 进行对象模拟,而且使用 nose 以单一步骤运行所有测试。
我想知道是否有方法使 unittest 输出带有颜色的显示,从绿/红条中一目了然地看出哪些测试通过了,哪些没有。
(在这个阶段更改测试套件不是一个选择,我也喜欢 unittest)
我使用 unittest
(实际上是 unittest2
) 进行 Python 测试,配合 Python Mock 进行对象模拟,而且使用 nose 以单一步骤运行所有测试。
我想知道是否有方法使 unittest 输出带有颜色的显示,从绿/红条中一目了然地看出哪些测试通过了,哪些没有。
(在这个阶段更改测试套件不是一个选择,我也喜欢 unittest)
使用一个非常类似于Robert的回答的方法,我(今天!)发布了一个包,可以在unittest
测试结果中启用彩色输出。我把它叫做colour-runner
。
要安装它,请运行:
pip install colour-runner
那么,如果您之前使用了unittest.TextTestRunner
,现在请改用colour_runner.runner.ColourTextTestRunner
。
可以看一下这里 verbosity=1
的效果...还有verbosity=2
nose
。 - meshy我在使用nosetests和rednose时取得了不错的成功。目前为止它仍然保持着维护。
sudo pip install rednose
。 - Eneko Alonsonosetests --verbosity=2 --rednose ./
,我正在使用Python 3.6.8和Nose 1.3.7。谢谢! - Gui LeFleaunittest.TestResult
的类(比如说MyResults
),并实现一堆方法。然后创建一个继承自unittest.TextTestRunner
的类(比如说MyRunner
),覆盖_makeResult()
方法以返回一个MyResults
的实例。MyRunner().run(suite)
。MyResults
中,包括颜色。python -m unittest test_my.py
将其改为:
pytest test_my.py
同时你将免费获得颜色
redgreenunittest
。这是我制作的unittest
的克隆版,但它具有彩色输出功能。import redgreenunittest as unittest
它不是unittest2的克隆,因此它不能直接与Andrea的代码一起使用,但是它的源代码就在那里,因此可以考虑将redgreenunittest
分支为unittest2
。
另外,任何“你做错了”的评论都受到欢迎,只要它们包含一些理由。我很想做得正确。
我还发现了另一个用于nose测试框架的着色插件:YANC,它位于https://pypi.python.org/pypi/yanc
在我的Python 3.5和nose 1.3.7上可以使用(我无法让其他列出的nose选项正常工作)