首页 > 解决方案 > 格式化 -v 输出以使复制/粘贴在鼻子测试中可运行

问题描述

运行鼻子测试 -v 时,默认情况下会得到以下示例输出。

test_name dir1.dir2.filename_without_dot_py.TestCaseClassname

这包含运行测试的所有有用信息,但不是以有用的复制/粘贴格式单独运行测试。我试图创建的理想输出是

dir1/dir2/filename_withoutdot_py.py:TestCaseClassname.test_name

然后可以将其直接复制并粘贴为nosetest参数

如果可能,我会尽量避免编写自己的鼻子插件。我意识到有一些方法可以使用 sed/awk 来确定格式,但这意味着任何运行特定测试集的人都无法在不应用的情况下将它们的可运行输出交给我在他们的测试运行之上的 bash 输出操作。

这是我调整输出的丑陋解决方案。它可以工作,但是对于一个过程来说既丑陋又不方便。

 nosetests -v | egrep "ERROR|FAIL"sed "s/test\.\([A-Z]\)/testXYZpy:\1/g" | sed "s#\.#/#g" | sed "s/(//g" | sed "s/)//g" | awk '{print $1" "$3"."$2" "$4}' | sed "s/XYZ/./g"

我注意到 site-packages/nose/plugins/xunit.py 提供了一种将输出转换为 xml 格式的方法,这是访问路径名、TestClass 和测试方法的示例的起点。

也就是说,编写插件似乎需要做很多工作,我认为有人可能已经这样做了,或者我可能缺少社区已知的东西。

标签: nose

解决方案


推荐阅读