pytest篇2-运行方式和用例执行规则

前言

我们上一篇博客简单介绍了pytest框架,最后也了解了pytest的运行规则如下:

  • 1、测试文件必须以test开头或者以test结尾(test_* /*_test)
  • 2、测试类必须以Test开头,并且不能带有__init__方法
  • 3、测试函数也必须以test开头
  • 4、断言与unittest框架里面的不一样,需要使用python自带原生的断言,assert
  • 5、所有的包packege必须要有__init__.py文件

这篇博客我们一起看一下pytest框架写的用例运行方式都有哪些

1、目录层级及代码

CSDN
 - pytestpackage
  -- test_01pytest.py
  -- test_02run.py
  -- test_03test_fun.py

------------------------------------------------------------------------------
**test_01pytest.py**

class TestClassOne:
    def test_pytestone_1(self):
        print('断言成功')
        assert "pass" == "pass"

    def test_pytestone_2(self):
        print('断言失败')
        assert 'pass' == 'failure'
------------------------------------------------------------------------------
**test_02run.py**

class TestClassTwo:
    def test_pytesttwo_1(self):
        print('run断言成功')
        assert "runpass" == "runpass"

    def test_pytesttwo_2(self):
        print('run断言失败')
        assert 'runpass' == 'failure'

------------------------------------------------------------------------------
**test_03test_fun.py**
# 此py模块里的用例没有在类中,模拟下面3.3的用例规则
def test_func():
    assert 'pass' == 'pass'

2、cmd执行pytest用例方式

常见的是第一个执行方式,好记、简单;博主也一般使用第一种方式来执行

  • 1、pytest
  • 2、py.test
  • 3、python -m pytest

3、执行规则

3.1 执行某个目录下的用例

会运行pytestpackage包下所有的用例,会执行五条用例

pytest pytestpackage

3.2 执行模块下的用例

pytest test_01pytest.py

只会运行test_01pytest.py模块下面的两条用例

3.3 运行模块中执行的测试用例(用例不在类中)

test_func 用例不在类中,直接写在py文件中

pytest test_03test_fun.py::test_func

3.4 运行模块中执行的测试用例(用例在类中)

test_pytesttwo_1 用例 在 TestClassTwo 类中

pytest test_02run.py::TestClassTwo::test_pytesttwo_1

3.5 -k 通过关键字表达式来进行测试

这个会执行文件名,类名以及函数名与给定的字符串表达式相匹配的测试用例
会执行 TestMyClass.test_something 但是不会执行TestMyClass.test_method_simple

pytest ‐k "MyClass and not method"

3.6 通过标记来运行测试用例

将运行用@ pytest.mark.slow装饰器修饰的所有测试

pytest -m slow

3.7 通过包来运行

这种方式会导入pkg.testing,并且基于该包所在位置来查找并运行测试用例

pytest --pkg.testing

3.8 pytest -x 遇到错误时,停止运行

用例执行失败后,就会停止运行,不会再运行下面的用例了

pytest -x test_01pytest.py

ps :

1、后续内容继续深入pytest的学习;
2、有什么问题,欢迎大家评论区评论交流!谢谢大家!
3、如果觉得博主这篇博客对大家有用,麻烦评论区留下自己的‘脚印’ !

你可能感兴趣的:(pytest,python)