目录
2.1 如何调用pytest
通常,pytest使用命令pytest调用(参见下面调用pytest的其他方法)。这将在当前目录及其子目录中名称遵循 test_*.py
或 \*_test.py
形式的所有文件中执行 所有测试。更一般地说,pytest遵循标准的测试发现规则。
2.1.1 指定要运行的测试
Pytest支持几种运行和选择测试的方法
- 运行一个模块的测试用例:pytest test_mod.py
- 运行一个目录所有的测试用例:pytest testing/
- 按关键字表达式运行测试:pytest -k "MyClass and not method"
class TestMyClass:
def test_something(self):
pass
def test_method_simple(self):
pass
collected 2 items / 1 deselected / 1 selected
test_jiao.py . [100%]
==================================================================================================== 1 passed, 1 deselected in 0.02s =====================================================================================================
-
按节点ID运行测试 每个收集到的测试都被分配了一个唯一的nodeid,它包括模块文件名,后面跟着说明符,如类名、函数名和参数化中的参数等说明符,由::字符分隔。
要在模块中运行特定的测试:pytest test_mod.py::test_func
在命令行中指定测试方法的另一个示例:pytest test_mod.py::TestClass::test_method
-
通过标记表达式运行测试:
pytest -m slow
import pytest
class TestMyClass:
def test_something(self):
pass
@pytest.mark.slow
def test_method_simple(self):
pass
- 从包中运行测试:pytest --pyargs pkg.testing
2.1.2 获取关于版本、选项名称、环境变量的帮助
pytest --version # 显示测试是从哪里导入的
pytest --fixtures # 显示可用的内置函数参数
pytest -h | --help # 显示有关命令行和配置文件选项的帮助
2.1.3 分析测试的执行的持续时间
要获得超过1.0秒长的最慢的10个测试持续时间的列表:pytest --durations=10 --durations-min=1.0
默认情况下,pytest不会显示测试时间太小(<0.005s)的持续时间,除非在命令行上传递-vv。
2.1.4 管理插件的加载
(1)使用插件 您可以使用-p选项在命令行中显式地早期加载插件(内部和外部): pytest -p mypluginmodule pytest -p pytest_cov
(2)禁用插件 要在调用时禁用加载特定的插件,请使用-p选项和前缀no:pytest -p no:doctest
2.1.5 其他调用pytest的方法
-
通过python调用,也相当于调用命令行脚本pytest...:
python -m pytest [...]
-
从Python代码调用pytest:
retcode = pytest.main()
这就像您要从命令行中调用“pytest”一样。它不会提高系统退出,而是返回退出代码。您可以传递以下选项和参数:
retcode = pytest.main(["-x", "mytestdir"])
指定其他插件到pytest.main,运行它将显示MyPlugin被添加,它的钩子被调用:
import pytest
import sys
class MyPlugin:
def pytest_sessionfinish(self):
print("*** test run reporting finishing")
if __name__ == "__main__":
sys.exit(pytest.main(["-qq"], plugins=[MyPlugin()]))
C:\Users\mc\Desktop\python>python tiaoce.py
*** test run reporting finishing
🎁更多干货
完整版文档下载方式:
这些资料,对于从事【软件测试】等相关工作的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享。
在评论区和我互动交流或者私❤我【软件测试学习】领取即可,拿走不谢。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “👍点赞” “✍️评论” “💙收藏” 一键三连哦!