gpt4 book ai didi

nose - 解决python中运行unittest的方式太多产生的困惑

转载 作者:行者123 更新时间:2023-12-04 12:55:02 28 4
gpt4 key购买 nike

我正在尝试实现一种完整而干净的测试 python 包的方法,一种适合以下要求的方法:

  • 在干净的机器上执行测试而不设置它们 (virtualenv)
  • 收集结果多平台
  • 收集结果多个python解释器
  • 代码 覆盖范围 (将多次执行的结果合并到一个报告中)
  • 能够生成 xml 代码覆盖率报告,以便构建系统可以跟踪这种变化随时间的变化。
  • 能够启用禁用测试 基于平台
  • 在测试之前运行几个命令,例如 pep8 或 autopep8
  • 并行运行测试。

  • 我使用了几种方法: nose + pytest , tox + pytest但最近发现 pytest应该可以做大部分的事情。

    主要问题是我无法找到关于何时使用一种或另一种方法更好的明确比较。

    有人可以解释这些并给出这些配置的一些用例或限制吗? ...只是为了清楚说明您何时采用一种或另一种方法。

    最后,我确实想要这些选项:
  • quicktest - 在本地运行测试,每次提交前必须
  • fulltest - 完整的测试,在所有可用平台上运行它们,这是发布新版本之前的必备条件
  • 最佳答案

    py.test 完美满足您的所有需求
    与其他测试运行者(如 Nose )相比,它的优点:

  • 具有依赖注入(inject)的 fixture - 无需复杂的 oop 进行测试设置
  • 简单但功能强大的插件系统,包含许多有用的插件 - 像 pytest-xdist 这样的插件允许您根据需要在所有平台上进行测试,包括 windows,pytest-cov 进行覆盖,pytest-cache 有助于仅运行最后失败的测试等
  • 参数化允许您使用一次写入多次运行方法进行使用声明性参数的测试
  • 使用简单的断言语句与复杂的类 java 语法 .assertEquals (http://pytest.org/latest/assert.html)
  • 越来越多
  • 关于nose - 解决python中运行unittest的方式太多产生的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16060178/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com