Pytest learning (7) -el uso de skip y skipif

Pytest learning (7) -el uso de skip y skipif

Prefacio

Como fiesta de Java, sigo pensando que pytest y testng son muy similares. A veces realmente siento que el lenguaje del código es similar hasta cierto punto, así que hoy hablaré sobre estos dos puntos de conocimiento.

Skip y skipif, como su nombre lo indica, son saltarse la prueba. Para decirlo sin rodeos, se utilizan para código que no se va a ejecutar. Después de marcar, el código marcado no se ejecuta.


Ejemplo de uso de skip : @ pytest.mark.skip (razón = "La razón por la que no desea ejecutar, la razón por la que el contenido se generará durante la ejecución")

1. El
código de muestra marcado en el método de función es el siguiente:


# 标记在函数上
@pytest.mark.skip(reason="标记在函数上,被标记函数不会被执行!!")
def test_case2():
    print("我是测试用例2,但我不会执行")

Los resultados son los siguientes:
Pytest learning (7) -el uso de skip y skipif

2. El
código de muestra del método de función marcado en la clase es el siguiente:


class TestClass1(object):

    def test_case3(self):
        print("我是用例3")

    # 标记在类中的函数上
    @pytest.mark.skip(reason="标记在类中的函数上,同样也不会执行哦!")
    def test_case4(self):
        print("我是测试用例4,但我不会执行")

Los resultados son los siguientes:
Pytest learning (7) -el uso de skip y skipif

3. El
código de muestra marcado en la clase es el siguiente:


@pytest.mark.skip(reason="标记在类上,整个类及类中的方法都不会执行!")
class TestClass2(object):
    def test_case5(self):
        print("我是用例5")

Los resultados son los siguientes:
Pytest learning (7) -el uso de skip y skipif

resumen:

@ pytest.mark.skip se puede agregar a la función, clase y método de clase.
Si se agrega a la clase, no se ejecutarán todos los casos de prueba de la clase.
4. Forzar el salto durante la ejecución del caso de prueba.
Tome un bucle for simple como Por ejemplo, cuando la ejecución llega a la tercera, salta. El código de muestra es el siguiente:


def test_case6():
    for i in range(50):
        print(f"输出第 【{i}】个数")
        if i == 3:
            pytest.skip("我跑不动了,不输出了")

Los resultados son los siguientes:
Pytest learning (7) -el uso de skip y skipif

Resumen: Se
puede entender que la prueba de omisión en este momento es la misma que la ruptura del ciclo, y la forma de anotación ya no se usa en este momento.

5. Omita la
sintaxis de prueba en el nivel del módulo : pytest.skip (msg = "", allow_module_level = False), cuando allow_module_level = True, puede configurar para omitir todo el módulo en el nivel del módulo. El código de muestra es el siguiente:


# -*- coding: utf-8 -*-
# @Time    : 2020/11/12 20:30
# @Author  : longrong.lang
# @FileName: test_skip.py
# @Software: PyCharm
# @Cnblogs :https://www.cnblogs.com/longronglang
import sys

import pytest

if sys.platform.startswith("win"):
    pytest.skip("当 allow_module_level=True 时,可以设置在模块级别跳过整个模块",allow_module_level=True)

@pytest.fixture(autouse=True)
def dataTable():
    print("数据初始化成功")

def test_case1():
    print("我是用例1")

Los resultados son los siguientes:
Pytest learning (7) -el uso de skip y skipif

6. Espero omitir cierta
sintaxis de casos de prueba condicionalmente: @ pytest.mark.skipif (expresión condicional, razón = "") El
código de muestra es el siguiente:

@pytest.mark.skip(sys.platform.startswith("win"),reason="windows系统不执行哦")
def test_case7():
    print("我是用例6")

Los resultados son los siguientes:
Pytest learning (7) -el uso de skip y skipif

7. Los
beneficios de usar marcas de omisión

Para facilitar la gestión unificada y el mantenimiento de casos de uso,
puede
asignar pytest.mark.skip y pytest.mark.skipif a una variable de marcador en diferentes marcas de módulo, y marcar con variables (variables de anotación). El código de muestra es el siguiente:

skip = pytest.mark.skip("skip的标记变量,标记的函数或类不执行")
skipif = pytest.mark.skipif("skipif的标记变量,标记的函数或类不执行")

@skip
def test_case8():
    print("测试用例8")

class TestClass(object):
    @skipif
    def test_case9(self):
        print("测试用例9")

Los resultados son los siguientes:
Pytest learning (7) -el uso de skip y skipif

8. Falta alguna
sintaxis de prueba de omisión de importación : pytest.importorskip (modname: str, minversion: Optional [str] = None, motivo: Optional [str] = None)
lista de parámetros

  • modname: nombre del módulo
  • minversion: número de versión
  • motivo: el motivo de la omisión. El
    código de muestra es el siguiente:
importskip = pytest.importorskip("importskip", minversion="0.3",reason="此处是导入失败,跳过的测试")

@importskip
def test_10():
    print('测试用例10')

Los resultados son los siguientes:
Pytest learning (7) -el uso de skip y skipif

Serie de artículos de referencia:
https://www.cnblogs.com/poloyy/category/1690628.html

EOF

Autor: QU Jian-long test nest
Este enlace: https://www.cnblogs.com/longronglang/p/13966382.html
Acerca de Bloggers: los comentarios y los mensajes privados responderán la primera vez. O envíame un mensaje directamente.
Declaración de derechos de autor: todos los artículos de este blog, excepto las declaraciones especiales, adoptan el acuerdo de licencia de BY-NC-SA. ¡Indique la fuente!
Apoya al bloguero: si crees que el artículo es útil para ti, puedes hacer clic en [Recomendado] en la esquina inferior derecha del artículo. ¡Tu aliento es la mayor motivación para los blogueros!
Bastante excelente, eres insustituible
Pytest learning (7) -el uso de skip y skipif

Supongo que te gusta

Origin blog.51cto.com/15009374/2556406
Recomendado
Clasificación