轻松声明可选测试(即默认情况下不运行的测试)

pytest-optional-tests的Python项目详细描述


PyPI versionPython versionsSee Build Status on Travis CI

提供使用pytest标记的可选测试的简单声明。 可选测试仅在通过配置文件或命令请求时运行 行。


动机

某些测试类不应在每次调用测试时运行。 定义只在特定情况下运行的测试通常很有用 请求的,例如速度慢、需要网络访问的测试,或 只在特定环境下工作。

Pytest提供了基于测试名称(-k)和 基于标记(-m)筛选测试两种机制都不能 默认情况下很容易支持某些测试。例如,人们可以 用@pytest.mark.network来修饰测试,但通过 默认情况下,需要一个标记表达式,如-m“not network” 每次召唤。当 有很多标记。

这个插件允许用户声明某些标记是 “可选标记”当测试用可选标记修饰时, 默认情况下跳过测试。测试可以用多个 标记,包括多个可选标记。可选测试可以是 在pytest ini文件或命令行中启用。

安装

您可以通过pipPyPI安装“pytest可选测试”:

$ pip install pytest-optional-tests

用法

可选标记必须使用与 标记选项例如:

[pytest]
optional_tests:
  slow: slow tests
  network: network tests
  bug: regression tests against previous bugs

不应使用标记属性声明可选标记, 即使使用pytest的strict模式。

可选的测试修饰符是pytest标记,语义是 完全相同。

如果一个测试用多个可选标记修饰,则该测试将 在请求任何标记时执行。例如:

@pytest.mark.network
@pytest.mark.slow
def test_slow_network_function(): ...

如果可选的慢速网络 要求进行测试。

可在INICFG中请求可选测试:

[pytest]
optional_tests:
  slow: slow tests
  network: network tests
  bug: regression tests against previous bugs
run_optional_tests=network,slow

或在命令行中:

pytest --run-option-tests=network,slow

贡献

我们非常欢迎您的贡献。测试可以用tox运行,请确保 在提交请求之前,覆盖范围至少保持不变

许可证

根据MIT许可证的条款分发

问题

如果您遇到任何问题,请file an issue连同详细说明。

这个pytest插件是用Cookiecutter@hackebrotcookiecutter-pytest-plugin模板生成的。

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

推荐PyPI第三方库


热门话题
编译器构造为什么在Java中允许初始化对Null的引用?   java手动调用javax的actionPerformed。摆动计时器   使用git分支的java Maven版本控制   Java8句子流   java JPA OneToOne和OneToMany实体实例化/创建   java如何将值添加到列表<Map<String,Object>>?   java如何使用ComboBox在一个框架内更改JPanel。getSelectedIndex()   java在比较XML和xmlunit时忽略文本差异   java无法从其他pc连接到本地主机   Java中分配对象id的优雅方式   Java中静态变量的使用   java试图从Neteller获取OAuth访问令牌时产生错误:“服务器返回HTTP响应代码:401表示URL”   Java:基元类型是否会影响性能?   java可以让hasNext()不区分大小写吗?   基于AutoCompleteTextView建议属性或AutoCompleteTextView值的java Android搜索   java流文件到firefox浏览器有时无法打开应用程序对话框   在没有ArrayList的Java中返回数组中的搜索结果   复制java。木卫一。IOException:数据错误(CRC)   java为什么我在尝试删除Facebook测试用户时会出现“方法未实现”错误   java如何使用JNA调用SetProcessReliationPolicy