无缓冲的python覆盖率

时间:2018-10-02 14:35:55

标签: python code-coverage coverage.py

我想在启用覆盖的生产环境中运行应用程序。 该应用程序始终处于运行状态,并且不会停止其执行。 我想每天看到覆盖率增加。 不幸的是,.coverage文件仅在应用程序停止后才会出现在磁盘上。

为了模拟这种行为,我使用了test.py

# cat test.py 
if 1==2:
    print(1)

if 2==2:
    print(2)

import time

i = 10
while i:
    print("sleep")
    time.sleep(1)
    i -= 1

print("end")

启动方式类似于

python3 -u -m coverage run test.py 
2
sleep
sleep
sleep
sleep # I want to be able to see coverage in this moment
sleep
sleep
sleep
sleep
sleep
sleep
end

仅在打印end字之后,我才能看到覆盖率文件

ls -a
.  ..  .coverage  test.py

如何在py.coverage上强制刷新/取消缓冲?

1 个答案:

答案 0 :(得分:1)

无法获取coverage.py 4.5.1来执行此操作。 5.0开发将数据存储切换为SQLite,因此我们应该能够添加一项功能,以定期将coverage数据刷新到数据库中。