作弊并获得100%的测试覆盖率

fullcoverage的Python项目详细描述


sourcespypibuilddocumentationlicense

警告

如果这还不够清楚:这个模块是个笑话!不要使用它。这并不危险,只是没用。

如今,每一个时髦的项目都有一系列闪亮的小徽章。它们看起来很棒,但很难买到。本模块旨在帮助您轻松获得100%测试覆盖率徽章。

有什么新消息?

changelog

下载并安装

  • 来源:

  • 来自PIP:

    pip install fullcoverage
    
  • 又快又脏的debian(还有ubuntu?)套餐

    这需要安装stdeb

    python3 setup.py --command-packages=stdeb.command bdist_deb
    sudo dpkg -i deb_dist/fullcoverage-<VERSION>_all.deb
    

如何

假设您希望完全覆盖模块foobar

  1. 安装全覆盖

    pip install fullcoverage
    
  2. 启用此插件。也就是说,在foobar.coveragerc文件中,有以下行:

    [run]
    plugins = fullcoverage.plugin
    
  3. 可选,如果要将测试报告限制在模块中,可以在同一个.coveragerc文件中添加:

    [fullcoverage.plugin]
    source = foobar
    
  4. 如果已经有了导入所有foobar子模块的测试,就这样了。否则,在测试的某个地方,让以下行导入模块中的所有内容:

    import foobar
    import fullcoverage
    
    fullcoverage.import_all(foobar)
    
  5. 就这样!现在您可以运行测试:

    coverage run --source foobar -m unittest
    coverage report --fail-under=100
    

错误和限制

  • 这不适用于doctest。请随意send a patch
  • 这只适用于Python3.5。请随意send a patch
  • 即使测试覆盖了模块的100%,它仍然可能包含错误。

常见问题解答

  • 这不危险吗?你是否每运行一个模块的每一行就可以获得100%的测试覆盖率?如果运行一行shutil.rmtree('/'),会怎么样?

这个插件不运行随机的代码行。它导入要覆盖的每个插件,但它欺骗了coverage,使其认为它们已经过了彻底的测试,而没有测试任何东西。如果您的模块可以安全地导入,则可以使用fullcoverage。如果您的模块无法安全导入,请修复您的模块。

  • 如果你的插件很好,为什么你不炫耀一下那些100%coverage徽章呢?

好吧,fullcoverage托管在一个Gitlab instance上,这个does not provide those badges yet。但是这个插件的实现是为了测试自己,以及it is thoroughly covered by tests

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在表被注释到配置之前获取表的元数据?   java滚动条不会出现在JList上   java JOGL监视器GPU内存   java为什么要使用RecyclerView onDraw延迟   java定制Oppo Reno 2 Z CPH1951(手机型号)的固件(闪存文件)   java自定义线程池执行器   java如何解决发布版本中重复的jar条目[com/安卓/volley/R.class]?   java如何使用Bukkit API触发事件?   java在blazemeter jmeter RTE插件中使用ctrl+w输入   C#/Visual Studio的java JDT等价物   java为什么当maxread值很大而收到的消息数量很小时,卡夫卡消费者会无限期消费?   java游戏2。x:包含模板列表的绑定模型   带压缩的java日志旋转   运行时。exec用java运行程序读取它正在做什么