如何停止Python unittest tearDown()中的测试?

2024-07-05 08:56:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有大量的测试是用Pythonunittest(python2.7.8)作为一个大的TestSuite编写的。其中许多测试会调用其他程序。有时这些其他程序会转储内核。当他们这样做时,我想发现这一点并确保测试失败。如果有一些内核被转储,我希望中止整个测试环境并退出,而不是继续:我的整个测试套件有超过6000个测试,如果所有的测试都在转储内核,那么继续下去就没用了(而且很危险:磁盘空间等)。在

为了确保在每次测试后都能找到coredump(因此我对哪个程序/调用转储的core有了最好的了解),我决定在tearDown()中查找核心,我正在成功地做这件事。如果找到核心,我可以在tearDown()中运行assert变量来指定测试失败。在

但是如果我发现了太多的核心,我不知道如何完全放弃所有的测试。我甚至尝试运行sys.exit("too many cores"),但是unittest case.py捕获了tearDown()抛出的每个异常,除了keyboardInterrupt(如果我试图手动提出,我的脚本将挂起,直到我执行一个真正的^C)。在

我想尝试调用stop(),但这是一个结果方法,我找不到任何方法从tearDown()(!)内访问result对象。在

到目前为止,我唯一的选择似乎是调用os._exit(),这真的很烦人,因为它根本不让任何结果被报告!在

Python中真的没有工具告诉测试环境立即停止,生成您得到的结果而不运行其他任何东西吗?在


Tags: 方法core程序核心测试环境套件sysexit
1条回答
网友
1楼 · 发布于 2024-07-05 08:56:11

你能检查一下在setUp()中转储了多少个内核吗?{如果你能打电话给我的话。在

{core}如果你不想在类中查找一个变量,那么你可能不想使用这个变量。在

相关问题 更多 >