首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >coverage.py的setuptools命令

coverage.py的setuptools命令
EN

Stack Overflow用户
提问于 2012-03-28 10:26:49
回答 2查看 1.3K关注 0票数 2

为使用coverage.py生成代码覆盖率报告的setuptools创建命令的最佳方式是什么

EN

回答 2

Stack Overflow用户

发布于 2012-03-28 11:21:12

您正在寻找的是Extending Distutils capabilities through extensions,它在我链接的文档中涵盖。基本思想是给出命令和entr5y的执行点,入口点应该遵循一些基于setuptools组件的术语。我认为,你在这里很幸运,因为已经有人成功地尝试( Adding Test Code Coverage Analysis to a Python Project's setup Command )将它集成到他的项目中,并且你应该能够采用它来达到你的目的。

票数 2
EN

Stack Overflow用户

发布于 2012-03-28 11:06:50

下面是一个简单的解决方案,它使用子进程调用coverage可执行文件。我假设您有一个名为mycoolpackage的Python包,其中包含您想要测量其测试覆盖率的代码,并且您有一个mytests包,它公开了一个返回测试套件的suite函数。

首先,创建一个run-tests.py文件:

代码语言:javascript
运行
复制
import os.path, sys
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))

import unittest
from mytests import suite

unittest.main(defaultTest='suite')    

然后在setup.py中创建以下命令,并将其添加到setup()函数的cmdclass参数中。

代码语言:javascript
运行
复制
class run_coverage(Command):
    description = "Generate a test coverage report."
    user_options = []    
    def initialize_options(self): pass
    def finalize_options(self): pass 
    def run(self):
        import subprocess
        subprocess.call(['coverage', 'run', '--source=mycoolpackage', 'run-tests.py'])
        subprocess.call(['coverage', 'html'])

请注意,coverage.py确实有一个允许您在不使用子流程调用的情况下完成此操作的应用程序接口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9900347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档