让python的unittest像gtest一样输出

python 的单元测试框架 unitetest 默认输出不带颜色,不便于区分 fail 和 success; 习惯了 googletest 的彩色输出和格式的情况下, 希望能让 unittest 也有类似输出。

pytest 这个测试框架兼容了 unittest, 可以用 pytest test_xxx.py 替代 python test_xxx.py, 得到 pytest 格式的输出, 成功的话显示为绿色。 不过我觉得横线太长了, googletest 那样才好看。

博主 coderzh 在若干年前分享了他的方法和代码: Python 天天美味(37) - 让python的unittest像gtest一样输出, 不过试了一下并不能直接运行, 也没有提供同时兼容 Windows 和 Linux 的写法。

现如今,像 termcolor, pygments, rich 等 python 库层出不穷,花里胡哨, 反而不依赖它们、 手写支持控制台颜色输出的做法, 反而有点“傻”。 但咱也是用 ascii 转义字符写过 C 语言的 log 库的人, 这点小事不成问题。

代码放在 github , 需要的朋友欢迎自取和star: https://github.com/zchrissirhcz/dotfiles/blob/master/py/mytest.py

posted @ 2021-09-21 17:10  ChrisZZ  阅读(135)  评论(0编辑  收藏  举报