为什么 Python 3.8.3 禁用了单元测试覆盖率?



我有这个版本的Python:

3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)]

在 PyCharm CE 2020.1.1 中的 Windows 10 上运行。使用非常简单unittest

# test_simple.py
from unittest import TestCase
class Simple(TestCase):
def test_one(self):
self.assertTrue(True)

我可以运行python -m coverage run -m unittest,它完成并生成一个.coverage的SQLite文件;我可以从生成测试结果树的IDE运行测试;但是运行/运行覆盖率是灰色的,没有解释。

我已经按照(相当分散的(PyCharm文档进行了设置/构建,执行,部署,启用激活覆盖视图,在将覆盖范围应用于编辑器之前显示选项,但这没有帮助。

为什么承保范围变灰,我该如何解决?

遗憾的是,IDE 覆盖支持在 PyCharm 社区版中不可用,如版本功能所示。

您必须像往常一样在命令行上运行覆盖率,例如本答案所示。

您还可以使用一些包装器来创建和打开 HTML 报表。可以在这篇博客文章中找到使用覆盖率的 pytest 的此类包装器的示例。以下是该博客中使用的脚本(请注意,我更改了覆盖路径以使用当前版本(:

import os
import subprocess
import webbrowser

def main():
subprocess.call(['coverage', 'erase'])    
subprocess.call(['coverage', 'run', '--module', 'pytest'])
subprocess.call(['coverage', 'html'])
webbrowser.open("file://" + os.getcwd() + "/htmlcov/index.html", new=2)
if __name__ == '__main__':
main()

最新更新