pytest 踩 坑 : NameError: el nombre 'pytest' no está definido

antecedentes

Al usar el complemento de orden de pytest, se informó un error al ejecutar el caso: NameError: name'pytest 'no está definido. El caso real es el siguiente:

test_demo.py

@ pytest.mark.run (orden = 2) 
def test_login (): 
    afirmar verdadero 

@ pytest.mark.run (orden = 1) 
def test_reg (): 
    afirmar verdadero

Luego ejecute pytest: ejecute como se muestra a continuación.

análisis

Mi pytest se instaló con pip3.Hay varios intérpretes de python3 (python3.5 y python3.8) en este entorno, por lo que sospecho que pytest no encontró el intérprete de python3 correcto al ejecutar el script.

Verifique la versión actual predeterminada del intérprete de python3 : python3 -V

Como se muestra en la figura, python3 usa python3.8.2, y pytest en la figura anterior también imprime python3.8.2.

Así que modifiqué test_demo.py: Especifique la ruta del ejecutor a python3 (agregue la ruta del intérprete de Python al encabezado del archivo):

# / usr / bin / env [email protected] (orden = 2) 
def test_login (): 
    afirmar True 

@ pytest.mark.run (order = 1) 
def test_reg (): 
    afirmar True

Luego ejecuté el script nuevamente, aún reportando errores.

¿Podría ser un problema con la instalación de Pytest? Intente importar pytest en python3: python3 -c'import pytest '.

Como se muestra en la figura, python3 puede importar el paquete pytest. ¿Es necesario especificar el paquete pytest de importación en el script?

Agregue el script del caso de prueba: import pytest.

# / usr / bin / env python3import [email protected] (orden = 2) 
def test_login (): 
    afirmar True 

@ pytest.mark.run (order = 1) 
def test_reg (): 
    afirmar True

¡Vuelve a correr y pasa!

Esta pregunta es realmente extraña, pero al observar todo el proceso, la razón principal es que el caso de prueba no siguió las especificaciones básicas del script de Python:

  1. Especifique el intérprete de Python: como #! / Usr / bin / env python3. (Si es python2, se puede escribir como #! / Usr / bin / env python2)
  2. Importe explícitamente el paquete utilizado en el script, incluso el decorador no es una excepción, como se muestra arriba import pytest
  3. La codificación del script especificado es utf8: #coding: utf-8, para evitar problemas inexplicables al agregar comentarios en chino o ejecutar en varios sistemas.

Lo anterior es todo el proceso de resolución de problemas, espero que te ayude ~ 

Blogger: prueba para ganar dinero

Lema: Centrarse en las pruebas y la automatización, y esforzarse por mejorar la eficiencia de la I + D; a través de las pruebas y la diligencia para completar la acumulación original, a través de la lectura y la gestión financiera hasta la libertad financiera.

csdn: https://blog.csdn.net/ccgshigao

Blog Park: https://www.cnblogs.com/qa-freeroad/

51cto: https://blog.51cto.com/14900374




Supongo que te gusta

Origin blog.51cto.com/14900374/2602899
Recomendado
Clasificación