PYtest serie (7) - skip, skipif casos de uso omiten

Si quieres aprender desde cero Pytest, se puede ver en esta serie de artículos Oh!

https://www.cnblogs.com/poloyy/category/1690628.html

 

prefacio

  • pytest.mark.skip   puede marcar la función de prueba no funciona en algunas plataformas, quiere dejar de fumar al no función de prueba
  • Esperamos que cumplir ciertas condiciones antes de realizar algunos casos de prueba, de lo contrario PYtest se saltará la prueba de funcionamiento
  • Real escenario común: Saltar en plataformas que no sean Windows única prueba de Windows, o saltado dependiendo del recurso externo actual (como una base de datos) es la prueba disponible

 

@ pytest.mark.skip

Saltar a ejecutar los casos de prueba, hay una razón parámetro opcional: saltarse las razones, los resultados serán impresos en la ejecución

# ! / Usr / bin / env Python 
# - * - Codificación: UTF-8 - * - 

"" " 
__title__ = 
__TIME__ = 09/04/2020 13:49 
__Author__ = pequeñas notas de las pruebas de piña 
__Blog__ = https: // www. cnblogs.com/poloyy/ 
"" " 
importación PYtest 


@ pytest.fixture (autouse = True)
 DEF la sesión) (:
     Imprimir ( " ==== ==== Inicio de sesión " ) 


DEF test_case01 ():
     Imprimir ( " yo era la prueba caso de uso 11111 " ) 


@ pytest.mark.skip (razón = " este caso de uso no será ejecutada porque no escrita !!! " )
 DEF test_case02 ():
    Imprimir ( " Soy un caso de prueba 22222 " ) 


de clase Prueba1: 

    DEF test_1 (Ser):
         Imprimir ( " %% %% prueba de Clase I 1111 " ) 

    @ pytest.mark.skip (razón = " no quería realizar " )
     DEF test_2 (Ser):
         Imprimir ( " prueba de %% %% clase I 2222 " ) 


@ pytest.mark.skip (razón = " clase no puede realizar skip " )
 de clase TestSkip:
     DEF test_1 (Ser):
         Imprimir ( " %% no se ejecutará %%" )

los resultados

El conocimiento Point

  • @ Pytest.mark.skip  se puede añadir a la función de la clase, el método de la clase
  • Si se agrega en una clase anterior, todas las clases de casos de prueba que no se ejecutan
  • Para los casos anteriores son pequeñas: la ejecución Todo el método de ensayo de saltos, si desea saltar hacia abajo para continuar con ella durante la ejecución de pruebas?

 

pytest.skip función () basado en el uso

Efectos: Durante la prueba ya no se ven obligados a saltar aplicación ejecución del contenido restante

Similar: con Python dentro del bucle, ciertas condiciones se cumplen entonces la ruptura fuera del ciclo

DEF test_function (): 
    n- = 1.
     Al mismo tiempo verdadera:
         Imprimir (F " este es mi primer artículo {n} caso de uso " ) 
        n- + = 1.
         SI n - == 5. : 
            Pytest.skip ( " yo no corro a correr cinco veces ." )

los resultados

 

pytest.skip (msg = "", allow_module_level = false)

Cuando  allow_module_level = true  , es posible saltarse todo el conjunto en el módulo de nivel de módulo

# ! / Usr / bin / env python 
# - * - coding: UTF-8 - * - 

""" 
__title__ = 
__TIME__ = 09/04/2020 13:49 
__Author__ =小菠萝测试笔记
__Blog__ = https: // www. cnblogs.com/poloyy/ 
""" 
importación sys
 importación PYtest 

si sys.platform.startswith ( " ganar " ): 
    pytest.skip ( " saltarse sólo para windows pruebas " , allow_module_level = True) 


@ pytest.fixture (autouse = True)
 def login ():
     print ( " ==== ====登录") 


deftest_case01 ():
     Imprimir ( " Soy un caso de prueba 11111 " )

los resultados

coleccionar ... 
omitidos: ventanas que saltan - sólo las pruebas 
recogidas 0 productos / 1 saltado

 ============================= 1 saltado en 0,15 s ==============================

 

@ Pytest.mark.skipif (condición, razón = "")

Papel: esperanza condicional omitir ciertos casos de prueba

Nota: Condition verdadera tendrá que volver a saltar

@ pytest.mark.skipif (sys.platform == ' win32 ' , razón = " no se ejecuta en ventanas " )
 de clase TestSkipIf (objeto):
     def test_function (self):
         print ( " 不能在ventana上运行" )

los resultados

coleccionar ... recogió 1 punto 

07skip_sipif.py::TestSkipIf::test_function parado [ 100% ] 
pasadas por alto: no , no se ejecutan en Windows


 ====================== ======= 1 omitido en 0.04s ==============================

 

marca de salto

  • Puede  pytest.mark.skip  y  pytest.mark.skipif  asignado a una variable de marca
  • La variable bandera compartida entre los diferentes módulos
  • Si la pluralidad de módulos de prueba necesita usar el mismo  salto  o  SKIPIF  , un único archivo se puede utilizar para administrar estos marcadores comunes, y luego se aplica a todo el conjunto de prueba
# Marcas 
skipmark = pytest.mark.skip (razón = " se ejecuta en ===== ventana " ) 
skipifmark = pytest.mark.skipif (sys.platform == ' Win32 ' , razón = " no se ejecutan en la ventana la la la ===== " ) 


@skipmark 
clase TestSkip_Mark (objeto): 

    @skipifmark 
    DEF test_function (Ser):
         Imprimir ( " marca de prueba " ) 

    DEF test_def (Ser):
         Imprimir ( " marca de prueba " ) 


@skipmark 
DEF test_skip ():
     Imprimir( " Marca de prueba " )

los resultados

Recogido 3 ... colectores. Artículos 

07skip_sipif.py::TestSkip_Mark::test_function parado [ 33% es ] 
saltamos el: La no puede ejecutarlo en una ventana ===== 

07skip_sipif.py::TestSkip_Mark::test_def parado [ 66% ] 
saltado: no se ejecutan en la ventana ================ 

07skip_sipif.py::test_skip parado [ 100% ] 
pasadas por alto: no trabajo en la ventana ================ 


=============== 3 Skipped ============== en 0.04s ==============================

 

pytest.importorskip (ModName: str, minVersion: Opcional [str] = Ninguno, razón: Opcional [str] = None)

Acción: Si faltan algunos importación, saltar todos los módulos de prueba

Lista de parámetros

  • ModName: nombre del módulo
  • minVersion: número de versión
  • reasone: Omitir razones, por no ser la línea predeterminada
pexpect = pytest.importorskip ( " pexpect " , minVersion = " 0.3 " ) 


@pexpect 
def test_import ():
     print ( " prueba " )

 

Los resultados de un: Si no hay ningún módulo

Saltado: podría no  importar  ' pexpect ' : Sin módulo denominado ' pexpect ' 
recoge 0 productos / 1 omitido

 

Los resultados de uno: Si las versiones no corresponden

Skipped: módulo ' sys ' ha __version__ Ninguno, requerido se : ' 0.3 ' 
recogió 0 productos / 1 omitido

 

Supongo que te gusta

Origin www.cnblogs.com/poloyy/p/12666682.html
Recomendado
Clasificación