Python 覆盖不会将输出重定向到文件

Posted

技术标签:

【中文标题】Python 覆盖不会将输出重定向到文件【英文标题】:Python coverage does not redirect output to a file 【发布时间】:2020-10-05 05:48:29 【问题描述】:

我正在尝试对单元测试的 Python 文件 WorkTest.py 运行覆盖,并将输出转发到文件 output.txt。

$ coverage run --branch WorkTest.py > output.txt

但是,输出一直出现在屏幕上,并且在我运行此命令的文件夹中没有 output.txt。为什么覆盖无法将输出重定向到文件?

我有 Windows 10、python 3.6.8、coverage 5.1 和 Git 附带的命令行 Git Bash。 谢谢。

【问题讨论】:

【参考方案1】:

首先检查输出是否实际上不在标准错误中而不是标准输出中:

coverage run --branch WorkTest.py > output.txt 2>&1

Coverage.py command line usage 确实提到:

调试输出到 stderr,除非 COVERAGE_DEBUG_FILE 环境变量命名不同的文件,该文件将被附加到。

【讨论】:

以上是关于Python 覆盖不会将输出重定向到文件的主要内容,如果未能解决你的问题,请参考以下文章

Linux文件描述符与重定向

关于shell输入 输出重定向

Linux-重定向追加

IO重定向和管道用法

Linux就该这么学——初识重定向

linux系统输入输出管理和vim的常用功能