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