如何在python nose中打印出测试的文件名和行号?

时间:2013-09-27 15:28:17

标签: python testing nose nosetests

当你在鼻子中运行测试时,我想在命令行上显示测试本身的文件名和行号,特别是当它失败时,我可以跳转到emacs中的行。我已经在case.py中插入了一些代码来打印出名称,我看到我可以制作一个处理prepareTestCase的插件,但我的问题是是否有插件可以做到这一点?

这是我的代码:nose / case.py:

import inspect

...

def runTest(self, result):

 ...

 if not isinstance(test,Failure):
    print("  File \"%s\", line %s\n" % (
        inspect.getsourcefile(test.test),
        inspect.getsourcelines(test.test)[1]))

1 个答案:

答案 0 :(得分:7)

只需使用nosetest选项运行-v,即可获取测试和测试名称的文件名。此外,失败的测试将在错误(具有行号)上转储完整的堆栈跟踪。您还可以使用--pdb--pdb-failure选项在错误或测试失败后立即进入pdb调试器。

Nose-progressive插件在格式化测试输出方面有许多花哨的功能,包括更改模板以满足任何编辑器。另外,请查看此nosemacs - emacs扩展程序,以便轻松进行鼻子集成。如果您只想要行号,nose-machineout就是您的朋友。