python连接informix只能通过jdbc(需要先部署java环境。我试过到IBM上下载ODBC但结局是失败的),在执行pytest时发现有一串报错(大致是下面的这样):

Windows fatal exception: access violation
Current thread 0x00000864 (most recent call first):
  File "C:\Miniconda36-x64\lib\site-packages\jpype\_core.py", line 227 in startJVM
File "C:\projects\ixmp\tests\backend\test_jdbc.py", line 18 in test_gh_229
File "C:\Miniconda36-x64\lib\site-packages\_pytest\python.py", line 166 in pytest_pyfunc_call
File "C:\Miniconda36-x64\lib\site-packages\pluggy\callers.py", line 187 in _multicall
File "C:\Miniconda36-x64\lib\site-packages\pluggy\manager.py", line 81 in <lambda>

但整个项目可以正常执行,因影响到了最终allure的测试报告显示的成功率,主管让我想办法。我首先在自己的demo项目中用同样的方法连接informix,并没有报错。所以想到是pytest的问题?但

在百度、csdn、bing、StackOverflow查找无果后,我终于在github上的jpype(python调用java的包)项目的issue找到解决方法:https://github.com/jpype-project/jpype/issues/561

提问人与作者讨论了挺多内容,最后发现是jvm启动时会触发异常,以检查其挂钩是否已安装(The first thing that it does when starting up the JVM is triggering an exception to check if the hook is installed)

而pytest安装了自己的挂钩干预了java的挂钩(But it appears possible that pytest installs its own hooks which interfere with the Java hooks)

所以pytest捕获到这个异常,并打印出来了。

解决方法:在pytest.ini的addopts添加-p no:faulthandler,以禁用这种故障处理

官方文档:https://docs.pytest.org/en/latest/usage.html#fault-handler

最新文章

  1. trie树模型
  2. 知方可补不足~SQL2005使用ROW_NUMBER() OVER()进行数据分页
  3. Web 安全测试
  4. (转)set集合的用法
  5. fdisk命令使用说明
  6. 通过StoryBoard加载视图控制器问题
  7. android127 zhihuibeijing 屏幕适配
  8. Effective C++ 笔记二 构造/析构/赋值运算
  9. C++引用(Reference)
  10. 利用d3.js绘制中国地图
  11. margin叠加相邻两个元素的上下margin是叠加在一起
  12. httpclient案例一(调用识别接口)
  13. Xcode 下cocos-2dx 环境搭建
  14. 处理json大文件
  15. Struts 2 初步入门(六)之处理结果类型
  16. 34.纯 CSS 创作在文本前后穿梭的边框
  17. [转]java按指定编码写入和读取文件内容的类
  18. OOP的几个不常用的方法
  19. Jquery判断checkbox选中状态
  20. SVD singular value decomposition

热门文章

  1. 【JDBC】学习路径9-dbcp数据源的使用
  2. 常用的SSH,你了解多少?(长文警告)
  3. 声明式HTTP客户端-Feign 使用入门详解
  4. Linux宝塔后台管理地址使用SSL,并部署非443端口的https
  5. kibana配置文件kibana.yml参数详解
  6. 了解Elasticsearch写入磁盘的数据
  7. Docker/K8s 解决容器内时区不一致方案
  8. suse 安装mysql5.7
  9. 跳转控制语句break
  10. Java对象或String转JSON对象