python - 在 Windows 上获取子进程的错误消息
问题描述
在 python 测试框架中,我想测试本机二进制文件是否运行良好:
r = subprocess.run([path], capture_output=True)
if r.returncode:
fail(f'Failed to run {path}, rc: {r.returncode}, stdout: {r.stdout}, stderr: {r.stderr}')
这在 Linux 上效果很好。但是,在 Windows 上,如果二进制文件有问题,例如:它找不到运行时库,我会得到:
Failed to run foo.exe, rc: 3221225781, stdout: b'', stderr: b''
这不是超级有用。如果我手动运行二进制文件,我会收到提示:“代码执行无法继续,因为找不到 lib.dll”。有没有办法在 python 包装器中获取这个提示的值?否则很难调试 CI 故障。
(我知道我必须将 lib 放在应用程序旁边 [或在 PATH 中] 才能使其工作。我有兴趣使错误消息准确,所以下次失败时,它会很明显)
解决方案
推荐阅读
- python - 使用 Google Colab 在不同的 python 文件中调用函数?
- java - 如何合并霍夫曼和lz77?
- java - 如何使用 Java 中的 Streams 从集合中仅选择某些项目
- javascript - 使用带有按钮的 react-router-dom 链接
- c# - 如何将 CheckBox.InputBindings MouseBinding 绑定到视图模型中的命令,而不是 DataGrid 对象项?
- c++ - 无法使用 FBO 绘制多个元素
- android - 如何在 MaterialDatePicker 上设置文本?
- python - 非线性方程的根(Python)
- javascript - 在传单折线中添加偏移量/边距
- ruby-on-rails - 如何从 Ruby on Rails 的路径中发现控制器名称和方法?