news 2026/7/17 19:41:08

第二:Pytest-执行用例规则和运行的三种方式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第二:Pytest-执行用例规则和运行的三种方式

二.Pytest开始用例设计

1.用例设计目录

2.test_bjhg_class.py
class TestClass: def test_one(self): x="this"assert'h'inx def test_two(self): x="hello"assert hasattr(x,'check')def test_three(self): a="hello"b="hello world"assert ainb
3.test_bjhg_sample.py
def func(x):returnx +1def test_answer(): assert func(3)==5

四.Pytest执行方式

1.cmd执行pytest用例有三种方法,一般推荐第一个(简单、好记、好写)1.1.如果不带参数,在某个文件夹下执行时,它会查找该文件夹下所有的符合条件的用例(查看用例设计原则)
1.1.1.pytest1.1.2.py.test1.1.3.python-mpytest

五.Pytest执行规则

1.执行某个目录下所有的用例:/可以不要
1.1.pytest 文件名/


2.执行某一个py文件下用例:切换到脚本所在的目录下或者在执行的时候加上完整的路径
2.1.pytest 脚本名称.py


3."-k"按关键字匹配
pytest-k“MyClass and not method”
3.1.将运行包含与给定字符串表达式匹配的名称的测试,其中包括Python使用文件名,类名和函数名作为变量的运算符3.2.上面的例子将运行TestMyClass.test_something,但不运行TestMyClass.test_method_simple

4.按节点运行
4.1.每个收集的测试都分配了一个唯一的nodeid4.1.1.它由模块文件名和后跟说明符组成来自参数化的类名,函数名和参数,由:: characters分隔
4.2.运行.py模块里面的某个函数
pytest test_mod.py::test_func

4.3.运行.py模块里面,测试类里面的某个方法:如果是在类下面的函数,必须要完整的路径包含类
pytest test_mod.py::TestClass::test_method

5.标记表达式运行:pytest-mslow
5.1.将运行用"@pytest.mark.slow"装饰器修饰的所有测试
6.从包里面运行:pytest —pyargs pkg.testing
6.1.这将导入pkg.testing并使用其文件系统位置来查找和运行测试
7.pytest -x(遇到错误时停止测试)运行:pytest-xtest_class.py
7.1.从运行结果可以看出,本来有2个用例,第一个用例失败后就没继续往下执行

8.pytest--maxfail=num(当用例错误个数达到指定数量时,停止测试)运行:pytest--maxfail=1


七.Pycharm运行三种方式

a.上边已经介绍如何在cmd执行Pytest用例,在Pycharm写代码多,写完用例后,需要调试看看,是不是能正常运行 b.如果每次跑去cmd执行,太麻烦;所以很有必要在Pycharm里面运行pytest用例
1.以xx.py脚本方式直接执行
1.1.当写的代码里面没用到Unittest和Pytest框架时,并且脚本名称不是以test_开头命名的,此时Pycharm会以xx.py脚本方式运行
def hello(): print("hello world !")if__name__=="__main__":hello()


2.以Unittest方式运行
2.1.当脚本命名为test_xx.py时,用到Unittest框架,此时运行代码,Pycharm会自动识别到以Unittest方式运行

3.以pytest方式运行
3.1.pytest方式运行,需要改该工程设置默认的运行器:文件-设置-Python-工具-集成工具-默认测试运行程序-选择pytest3.2.备注:Pytest是可以兼容Unittest框架代码


八.Pycharm写Pytest代码

1.在Pycharm里面写Pytest用例,先导入pytest
1.1.test_bjhg_class.py
importpytest class TestClass: def test_one(self): x="this"assert'h'inx def test_two(self): x="hello"assert hasattr(x,'check')def test_three(self): a="hello"b="hello world"assert ainbif__name__=="__main__":pytest.main('-q test_bjhg_class.py')
2.运行结果

2.1.运行结果“.F. ” 点是代表测试通过,F是Fail的意思2.2.warnings是用于pytest.main('-q test_class.py')里面参数需要传list,多个参数放list就不会有警告了
pytest.main(['-q','test_bjhg_class.py'])


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 19:37:03

Claude AI工作台:从代码生成到工程效能提升实践

1. Claude从聊天工具到生产力平台的进化当我第一次接触Claude时,和大多数人一样,只是把它当作一个智能聊天机器人。直到看到Anthropic工程师们的工作方式,才意识到自己错过了什么——他们早已将Claude打造成了一个完整的工作台。这种转变不是…

作者头像 李华
网站建设 2026/7/17 19:35:32

2026 IEEE TASE,三维袋装优化

目录1.摘要2.研究背景与问题定义3.袋体重塑规则与柔性容量4.3D-BGPP 混合整数模型5.CBD-BS 求解方法6.实验结果7.参考文献8.算法辅导应用定制读者交流1.摘要 物流中袋装箱具有柔性、便于压缩和成本低等优点,但袋体会随装入物品而改变形状,传统刚性箱体装…

作者头像 李华
网站建设 2026/7/17 19:33:28

AI Agent 面试题 638:如何实现RAG系统的多源知识融合?

🔥 AI Agent 面试题 638:如何实现RAG系统的多源知识融合? 摘要:本文深入解析了「如何实现RAG系统的多源知识融合?」这一 AI Agent 领域的核心面试题。文章从 检索增强生成原理 的基本概念出发,系统性地剖析…

作者头像 李华