Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 单元测试彩色输出_Python_Unit Testing - Fatal编程技术网

Python 单元测试彩色输出

Python 单元测试彩色输出,python,unit-testing,Python,Unit Testing,我使用unittest(实际上是unittest2)进行Python测试,以及模拟对象,并在一次测试中运行所有测试 我怀念能够从绿色/红色条上一目了然地分辨出什么在工作,什么出了问题。有没有办法从unittest获得彩色输出 (此时更改测试套件不是一个选项,实际上我喜欢unittest)在Python2.x中,您可以尝试一下。但是在Python3中不起作用。尝试nosetests插件。创建一个继承自unittest.TestResult(例如,MyResults)的类,并实现一系列方法。然后创建

我使用
unittest
(实际上是
unittest2
)进行Python测试,以及模拟对象,并在一次测试中运行所有测试

我怀念能够从绿色/红色条上一目了然地分辨出什么在工作,什么出了问题。有没有办法从unittest获得彩色输出


(此时更改测试套件不是一个选项,实际上我喜欢unittest)

在Python2.x中,您可以尝试一下。但是在Python3中不起作用。

尝试nosetests插件。

创建一个继承自
unittest.TestResult
(例如,
MyResults
)的类,并实现一系列方法。然后创建一个继承自
unittest.TextTestRunner
(例如,
MyRunner
)的类,并重写
\u makeResult()
,以返回
MyResults
的实例

然后,构造一个测试套件(您可能已经开始工作),并调用
MyRunner().run(suite)


你可以把你喜欢的任何行为,包括颜色,放入
MyResults

我的鼻子测试和测试都很成功。在撰写本文时,它仍然保持不变。

如果您可以只更改测试导入的行,您可以使用。这是我用unittest制作的一个克隆,但是它有彩色输出

如果您想在不更新任何代码内容的情况下使用它,可以这样使用:

import redgreenunittest as unittest
它不是unittest2的克隆,因此它不会与Andrea的代码一起开箱即用,但它的源代码就在那里,因此
unittest2
分支的
redgreenunittest
也不是不可能的


此外,任何“你做错了”的评论都是受欢迎的,只要它们包含一些理由。我很想把它做好。

使用一种非常类似的方法,我(今天!)发布了一个软件包,可以在
unittest
测试结果中实现颜色输出。我已经叫它了

要安装它,请运行:

pip install colour-runner
然后,在使用unittest.TextTestRunner的地方,改用
Color\u runner.runner.ColorTextTestRunner


请参阅…和

我还发现了另一个鼻子着色插件:YANC at


我可以使用Python 3.5和nose 1.3.7(我无法使用上面列出的nose的任何其他选项)

如果您以这种方式运行pytest:

python -m unittest test_my.py
将其更改为:

pytest test_my.py
您可以免费获得颜色

可以做到这一点,而无需更改单元测试

现在安装pytest

pip install --user pytest
并运行测试以查看颜色


这绝对是最简单的解决方案。我发现最新版本(0.2.6),如果在命令行模式下运行,只需等待1毫秒,等待stdin上的数据-如果它没有收到任何数据,则会显示一条用法消息。将轮询超时更改为更合理的1000毫秒是很容易的。在设置绿色/红色条之前,您使用了什么?easy_安装对我来说失败了,但是pip工作得很好:
sudo pip install rednose
这对我有效,
nosetests--verbosity=2--rednose./
,我正在使用Python 3.6.8和Nose 1.3.7。非常感谢。这在什么平台上工作?我之所以问这个问题,是因为Windows上终端的颜色与Linux和OS X上终端的颜色非常不同。这是个好问题。我已经在linux和OSX上测试了它,但是我没有Windows机器来测试它。我使用两个库来进行输出。该库声称它在windows上“与配合使用时应该可以工作”,因此它可能需要额外的软件包。我找不到任何关于是否支持windows的信息,但我怀疑如果不支持,colorama可能会解决这个问题。我很想知道这在windows上是如何工作的。我能解释一下否决票的原因吗?这样我就可以改进了?否决票本身不太适合采取建设性的行动。有没有可能像rednose一样将其用于鼻测试?@NOTT101我很确定这不会适用于
nose
。没有python 3版本:/这应该是公认的答案^^颜色很可爱,是其他鼻插件中最好的