Pytest(1)安装与入门(pytest用法)

网友投稿 309 2022-08-28


Pytest(1)安装与入门(pytest用法)

pytest介绍

pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它具有如下特点:

非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考能够支持简单的单元测试和复杂的功能测试支持参数化执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的case标记成失败支持重复执行(rerun)失败的 case支持运行由 nose, unittest 编写的测试 case可生成 html 报告方便的和持续集成工具 jenkins 集成可支持执行部分用例具有很多第三方插件,并且可以自定义扩展

安装pytest

一般接触一个新的框架,个人推荐使用​​virtualenvwrapper​​​这个虚拟环境,使得环境独立有关​​​virtualenvwrapper​​的安装与使用后续再出文章,这里可自行百度

终端运行

(pytest_env) ➜ ~ pip3 install pytest

查看版本

(pytest_env) ➜ ~ pytest --version

快速开始

# test_sample.py 的内容 def func(x): return x + 1def test_answer(): assert func(3) == 5class TestClass(object): def test_one(self): x = "this" assert 'h' in x def test_two(self): x = "hello" assert hasattr(x, 'check')

然后进入当前目录,执行命令​​pytest​​

> pytest============================================= test session starts =============================================platform darwin -- Python 3.7.6, pytest-6.2.1, py-1.10.0, pluggy-0.13.0rootdir: /Users/jkc/PycharmProjects/pytestDocplugins: allure-pytest-2.8.6collected 3 items test_example.py F.F [100%]================================================== FAILURES ===================================================_________________________________________________ test_answer _________________________________________________ def test_answer():> assert func(3) == 5E assert 4 == 5E + where 4 = func(3)test_example.py:16: AssertionError_____________________________________________ TestClass.test_two ______________________________________________self = def test_two(self): x = "hello"> assert hasattr(x, 'check')E AssertionError: assert FalseE + where False = hasattr('hello', 'check')test_example.py:26: AssertionError=========================================== short test summary info ===========================================FAILED test_example.py::test_answer - assert 4 == 5FAILED test_example.py::TestClass::test_two - AssertionError: assert False========================================= 2 failed, 1 passed in 0.04s =========================================

知识点

如果只执行 pytest ,会查找当前目录及其子目录下以​​test__*.py​​​或​​*_test.py​​​文件,找到文件后,在文件中找到以​​test​​​开头函数或者​​Test​​开头的类并执行(当然,后续也可以自定义规则)如果只想执行某个文件,可以​​pytest start.py​​加上​​-q​​​,就是显示简单的结果:​​pytest -q start.py​​

Pytest用例的设计原则

用Pytest写用例时候,一定要按照下面的规则去写,否则不符合规则的测试用例是不会执行的

文件名以​​test_*.py​​​ 文件和​​*_test.py​​以​​test_​​开头的函数以​​Test​​​开头的类,不能包含​​__init__​​方法以 test_ 开头的类里面的方法所有的包 pakege 必项要有​​__init__.py​​ 文件

去期待陌生,去拥抱惊喜。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Springboot yml Map List读取方式
下一篇:Pytest运行及控制台输出信息(pytest命令行参数)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~