做生鲜食品最好的网站,企业网站手机端模板,如何架设网站服务器,佛山选择免费网站优化目录
2.1 如何调用pytest
2.1.1 指定要运行的测试
2.1.2 获取有关版本、选项名称、环境变量的帮助
2.1.3 分析测试执行时间
2.1.4 管理加载插件
2.1.5 调用pytest的其他方式 2.1 如何调用pytest
2.1.1 指定要运行的测试
Pytest支持几种从命令行运行和选择测试的方法。、…目录
2.1 如何调用pytest
2.1.1 指定要运行的测试
2.1.2 获取有关版本、选项名称、环境变量的帮助
2.1.3 分析测试执行时间
2.1.4 管理加载插件
2.1.5 调用pytest的其他方式 2.1 如何调用pytest
2.1.1 指定要运行的测试
Pytest支持几种从命令行运行和选择测试的方法。、
在模块中运行测试
pytest test_mod.py
在目录中运行测试
pytest testing/
按关键字表达式运行测试
pytest -k MyClass and not method
这将运行包含与给定名称匹配的名称的测试字符串表达式 不区分大小写它可以包括使用文件名、类名和函数名作为变量的Python运算符。上面的例子将运行 TestMyClass.test_something 但不是 TestMyClass.test_method_simple。在Windows系统上运行时使用双引号而不是单引号来表示表达式。
按节点ID运行测试
每个收集到的测试都被分配一个唯一的节点ID(nodeid)该节点ID由模块文件名和后缀组成后缀包括类名、函数名和由参数化生成的参数这些部分以双冒号::分隔。
要在模块中运行特定测试请执行以下操作
pytest test_mod.py::test_func
在命令行中指定测试方法的另一个示例
pytest test_mod.py::TestClass::test_method
通过标记表达式运行测试
pytest -m slow
将运行所有用pytest.mark.slow装饰器装饰的测试。
有关详细信息请参见 marks。
从包运行测试
pytest --pyargs pkg.testing
这将导入 pkg.testing 并使用其文件系统位置来查找和运行测试。
2.1.2 获取有关版本、选项名称、环境变量的帮助
pytest --version # shows where pytest was imported from(显示pytest的导入位置)
pytest --fixtures # show available builtin function arguments (显示可用的内置函数参数)
pytest -h | --help # show help on command line and config file options(显示有关命令行和配置文件选项的帮助)
2.1.3 分析测试执行时间
在6.0版中进行了更改。
要获得超过1.0秒的最慢10个测试持续时间的列表
pytest --durations10 --durations-min1.0
默认情况下pytest不会显示太小0.005s的测试持续时间除非在命令行上传递-vv。
2.1.4 管理加载插件
早期加载插件(Early loading plugins)
您可以使用-p选项在命令行中显示早期加载插件内部和外部
pytest -p mypluginmodule
该选项接收一个name参数该参数可以是
完整的模块虚线名称例如myproject.plugins。此虚线名称必须是可导入的。插件的入口点名称。这是注册插件时传递给setuptools的名称。例如要提前加载pytest-cov插件您可以使用
pytest -p pytest_cov
禁用插件(Disabling plugins)
要禁用在调用时加载特定插件请将-p选项与前缀no:一起使用。
示例要禁用加载插件doctest该插件负责从文本文件执行doctest测试请如下调用pytest
pytest -p no:doctest
2.1.5 调用pytest的其他方式
通过python -m pytest调用pytest
您可以从命令行通过Python解释器调用测试
python -m pytest [...]
这几乎相当于直接调用命令行脚本pytest[…]只是通过python调用也会将当前目录添加到sys.path中。
从Python代码调用pytest
您可以直接从Python代码中调用pytest
retcode pytest.main()
这就好像您要从命令行调用“pytest”一样。它不会引发SystemExit而是返回退出代码。您可以传入选项和参数
retcode pytest.main([-x, mytestdir])
您可以为pytest.main指定其他插件
# content of myinvoke.py
import sys
import pytest
class MyPlugin:def pytest_sessionfinish(self):print(*** test run reporting finishing)
if __name__ __main__:sys.exit(pytest.main([-qq], plugins[MyPlugin()]))
运行它将显示添加了MyPlugin并调用
$ python myinvoke.py
*** test run reporting finishing
注
调用pytest.main()将导入测试及其导入的任何模块。由于python导入系统的缓存机制从同一进程对pytest.main()进行后续调用不会反映调用之间对这些文件的更改。因此不建议从同一进程多次调用pytest.main()例如为了重新运行测试。