轻松声明可选测试(即默认不运行的测试)
项目描述
提供使用pytest标记轻松声明可选测试的功能。可选测试仅在请求时通过配置文件或命令行运行。
动机
某些测试类不应该在每次测试调用时运行。在特定请求时运行测试通常很有用,例如,运行速度较慢、需要网络访问或仅在特定环境中工作的测试。
Pytest提供了根据测试名称(-k)运行测试的机制,以及根据标记(-m)过滤测试的机制。这两个机制都不易于默认抑制某些测试。例如,可能用@pytest.mark.network装饰测试,但默认禁用它需要每个调用时带有标记表达式如-m “not network”。当有多个标记时,标记和标记表达式会变得难以管理。
此插件允许用户声明某些标记为“可选标记”。当测试用可选标记装饰时,默认情况下会跳过测试。测试可以装饰多个标记,包括多个可选标记。可选测试可以在pytest ini文件或命令行中启用。
安装
您可以从PyPI通过pip安装“pytest-optional-tests”。
$ pip install pytest-optional-tests
用法
可选标记必须在inicfg中使用与markers选项相同的语法声明。例如
[pytest] optional_tests: slow: slow tests network: network tests bug: regression tests against previous bugs
即使在pytest的strict模式下,也不应该使用markers属性来声明可选标记。
可选测试装饰器是pytest标记,其语义是相同的。
如果一个测试被多个可选标记装饰,当请求任何标记时,测试将执行。例如
@pytest.mark.network @pytest.mark.slow def test_slow_network_function(): ...
如果请求了可选的slow或network测试中的任意一个或两个,它将被测试。
可选测试可以在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运行测试,请在提交pull request之前确保覆盖率至少保持不变。
许可证
根据MIT许可证分发。
问题
如果您遇到任何问题,请提交问题,并附带详细的描述。
此pytest插件是用Cookiecutter以及@hackebrot的cookiecutter-pytest-plugin模板生成的。
项目详情
下载文件
下载适合您平台的项目文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
pytest-optional-tests-0.1.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7f4411bf1551b556ae24a7e1385c4832d7520ccef109c374929aa71afe8c6754 |
|
MD5 | e9fba2b9d28425bce70916c5f36991e2 |
|
BLAKE2b-256 | b30de0ed3c137ac8b604d0a90aa4a23e50ef21a66320b50a6a9b2c5f41e5a986 |
pytest_optional_tests-0.1.1-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ededc9d2aa7051d1af8ff5e757119b5758d86c7f24e73e1bb7dd5f19cd2031fa |
|
MD5 | 2dd71448a873e85c4aec0cf39283e920 |
|
BLAKE2b-256 | f24a7726bed4f1fda2f4af35d1b8d774169aa0103f0141abe3fb3ba7761efa86 |