招商网站建设免费,手机网站建设新闻,中山seo排名,网站建设的源代码问题描述
之前我们有讲过如何使用Jpype调用jar包#xff0c;在成功调用jar包后#xff0c;接着在Pytest框架下编写自动测试用例。但是在Pytest下使用Jpype加载jar包#xff0c;并调用其中的方法会以下提示信息#xff1a; 虽然提示信息显示有Windows显示致命…问题描述
之前我们有讲过如何使用Jpype调用jar包在成功调用jar包后接着在Pytest框架下编写自动测试用例。但是在Pytest下使用Jpype加载jar包并调用其中的方法会以下提示信息 虽然提示信息显示有Windows显示致命错误但是并不会影响最后的测试用例是否会通过。但是每次运行Pytest测试函数时都会有这样的信息看着很难受。
解决方法
我们直接来看解决方法只要在Jpype启动jvm的地方加上以下代码即可
import faulthandler
faulthandler.enable()
faulthandler.disable() 这样Pytest就会过滤掉上述的报错信息。
问题分析
我在github上找到这个问题的帖子是2020年的“Windows fatal exception: access violation” on Windows using pytest · Issue #561 · jpype-project/jpype。
根据帖子里面的描述这个问题是harmless无害的因此虽然有Windows fatal exception的提示信息测试方法也能正常通过。帖子也有推测这个问题出现的原因进程死亡、线程死亡和资源被强制移除等但是似乎并没有结论只给出了绕过这个提示信息的方法。
另外我在后续的测试中对jar包中的代码进行进一步封装后重新调整了一下Pytest的代码上面的Windows fatal exception又不会显示了。帖子里面也给出了复现这个问题的方法只需要在使用Jpype的文件中添加下面代码即可
import faulthandler
import sys
faulthandler.enable(filesys.stdout)