我有一个Python测试可能会产生很多警告。测试完成后,如果有任何警告,我希望它引发异常。
将测试运行到最后然后提升是很重要的,因为我正在使用远程构建机器人并希望立即看到所有警告。
我该怎么做?
答案 0 :(得分:0)
我昨天问了这个,但后来又找到了答案。 这项技术很有意思,我想分享它。
当模块使用警告模块创建警告时,它会将这些警告存储在保存所见警告的特殊变量中。所以在我的例子中,解析器模块发出警告。我只是让它做它通常的工作,并在测试结束时来:
if hasattr(parser, "__warningregistry__"):
raise RuntimeError("There are errors, see above.")
这样,我不必以任何方式修改我的解析器,但是在运行结束时,我得到一个异常,并且我有所有可用的警告。然后我可以修复所有情况并开始另一次构建机器人运行。