Este es el comando py.test-3 que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
pytest - uso de pytest
LLAMAR PY.PRUEBA-3 MEDIANTE PYTHON -M PY.PRUEBA-3
Nuevo en la versión 2.0.
Si usa Python-2.5 o posterior, puede invocar las pruebas a través del intérprete de Python desde
la línea de comando:
python -m pytest [...]
Esto es equivalente a invocar la secuencia de comandos de la línea de comandos. py.prueba-3 [...] .
CONSIGUIENDO AYUDA ON VERSIÓN, OPCIÓN NOMBRES, MEDIO AMBIENTE VARIABLES
py.test-3 --version # muestra de dónde se importó pytest
py.test-3 --fixtures # muestra los argumentos de la función incorporada disponibles
py.test-3 -h | --help # muestra la ayuda en la línea de comandos y las opciones del archivo de configuración
PARADA DESPUÉS DE EL PRIMERO (O N) Fracasos
Para detener el proceso de prueba después de las primeras (N) fallas:
py.test-3 -x # detener después de la primera falla
py.test-3 --maxfail = 2 # detener después de dos fallas
ESPECIFICANDO TESTS / SELECCIONANDO TESTS
Varias opciones de ejecución de prueba:
py.test-3 test_mod.py # ejecutar pruebas en el módulo
py.test-3 somepath # ejecutar todas las pruebas debajo de somepath
py.test-3 -k stringexpr # solo ejecuta pruebas con nombres que coinciden
# "expresión de cadena", por ejemplo, "MyClass y no método"
# seleccionará TestMyClass.test_something
# pero no TestMyClass.test_method_simple
py.test-3 test_mod.py::test_func # solo ejecuta pruebas que coinciden con el "ID de nodo",
# por ejemplo, "test_mod.py::test_func" seleccionará
# solo test_func en test_mod.py
py.test-3 test_mod.py::TestClass::test_method # ejecutar un solo método en
# una sola clase
Importe 'pkg' y use la ubicación de su sistema de archivos para buscar y ejecutar pruebas:
py.test-3 --pyargs pkg # ejecuta todas las pruebas que se encuentran debajo del directorio de pypkg
MODIFICAR PYTHON RASTREAR IMPRESIÓN
Ejemplos para modificar la impresión de rastreo:
py.test-3 --showlocals # muestra las variables locales en los rastreos
py.test-3 -l # muestra variables locales (atajo)
py.test-3 --tb = long # el formato de seguimiento informativo predeterminado
py.test-3 --tb = native # el formato de la biblioteca estándar de Python
py.test-3 --tb = short # un formato de rastreo más corto
py.test-3 --tb = line # solo una línea por falla
GOTEANTE A AP (PITÓN DEPURADOR) ON Fracasos
Python viene con un depurador de Python incorporado llamado AP. pytest permite a uno caer en
los AP mensaje a través de una opción de línea de comando:
py.prueba-3 --pdb
Esto invocará al depurador de Python en cada falla. A menudo es posible que solo quieras hacer
esto para la primera prueba fallida para comprender una determinada situación de falla:
py.test-3 -x --pdb # caiga a PDB en la primera falla, luego finalice la sesión de prueba
py.test-3 --pdb --maxfail = 3 # caiga a PDB para los primeros tres fallos
Tenga en cuenta que ante cualquier falla, la información de la excepción se almacena en sys.último_valor,
sys.último_tipo y sys.last_traceback. En uso interactivo, esto le permite a uno caer en
depuración post mortem con cualquier herramienta de depuración. También se puede acceder manualmente a la excepción
información, por ejemplo:
>>> importar sys
>>> sys.last_traceback.tb_lineno
42
>>> sys.last_value
AssertionError ('afirmar resultado == "ok"',)
AJUSTE A PUNTO DE RUPTURA / Apodo SET_TRACE ()
Si desea establecer un punto de interrupción e ingresar el pdb.set_trace () puedes usar un ayudante:
importar pytest
def función_prueba ():
...
pytest.set_trace () # invocar el depurador y seguimiento de PDB
Antes de la versión 2.0.0 de pytest, solo podía ingresar AP seguimiento si desactivó la captura
en la línea de comando a través de py.prueba-3 -s. En versiones posteriores, pytest desactiva automáticamente su
captura de salida cuando ingresa AP rastreo:
· La captura de salida en otras pruebas no se ve afectada.
· Cualquier salida de prueba anterior que ya se haya capturado y se procesará como tal.
· Cualquier salida posterior producida dentro de la misma prueba no se capturará y, en su lugar, se obtendrá
enviado directamente a sistema.stdout. Tenga en cuenta que esto es cierto incluso para la salida de prueba que se produce
después de salir del interactivo AP sesión de seguimiento y continuar con la prueba regular
huye.
Desde la versión 2.4.0 de pytest, también puede usar el Python nativo importar pdb; pdb.set_trace ()
llamar para entrar AP rastreo sin tener que usar el pytest.set_trace () envoltorio o
deshabilitar explícitamente la captura de salida de pytest a través de py.prueba-3 -s.
PERFILANDO PROBAR EJECUCIÓN DURACIÓN
Para obtener una lista de las 10 duraciones de prueba más lentas:
py.test-3 --durations = 10
CREANDO JUNITXML FORMATO ARCHIVOS
Para crear archivos de resultados que puedan ser leídos por Hudson u otra integración continua
servidores, utilice esta invocación:
py.test-3 --junitxml = ruta
para crear un archivo XML en camino.
registro_xml_propiedad
Nuevo en la versión 2.8.
Si desea registrar información adicional para una prueba, puede usar el registro_xml_propiedad
accesorio:
def función_prueba (record_xml_property):
record_xml_property ("clave_ejemplo", 1)
afirmar 0
Esto agregará una propiedad adicional example_key = "1" a lo generado caso de prueba tag:
ADVERTENCIA:
Esta es una función experimental y su interfaz podría ser reemplazada por algo más
potente y general en futuras versiones. La funcionalidad per se se mantendrá,
sin embargo.
Actualmente no funciona cuando se usa con el pytest-xdist .
También tenga en cuenta que el uso de esta función romperá cualquier verificación de esquema. Esta
puede ser un problema cuando se utiliza con algunos servidores de CI.
CREANDO RESULTADO FORMATO ARCHIVOS
Para crear archivos de resultados de texto sin formato legibles por máquina, puede emitir:
py.test-3 --resultlog = ruta
y mira el contenido en el camino localización. Estos archivos son utilizados, por ejemplo, por el Prueba de PyPy
página web para mostrar los resultados de las pruebas en varias revisiones.
ENVIANDO PROBAR INFORME A ONLINE CAJA DE PASTEL SERVICIO
Creamos a Enlance for cada una test el fracaso:
py.test-3 --pastebin = falló
Esto enviará información de ejecución de prueba a un servicio de Pegado remoto y proporcionará una URL para cada
falla. Puede seleccionar las pruebas como de costumbre o agregar, por ejemplo -x si solo quieres enviar uno
fallo particular.
Creamos a Enlance for a todo test Sesión log:
py.test-3 --pastebin = all
Actualmente solo pegando en el http://bpaste.net se implementa el servicio.
INHABILITAR PLUGINS
Para deshabilitar la carga de complementos específicos en el momento de la invocación, use el -p opción junto con
el prefijo en:.
Ejemplo: para deshabilitar la carga del complemento prueba, que se encarga de ejecutar doctest
pruebas de archivos de texto, invoque py.test-3 así:
py.test-3 -p no: doctest
LLAMAR PY.PRUEBA-3 DESDE PYTHON CÓDIGO
Nuevo en la versión 2.0.
Puedes invocar pytest desde el código Python directamente:
pytest.main ()
esto actúa como si llamara "py.test-3" desde la línea de comando. No se levantará
SystemExit pero devuelve el código de salida en su lugar. Puede pasar opciones y argumentos:
pytest.main (['- x', 'mytestdir'])
o pasar una cadena:
pytest.main ("- x mytestdir")
Puede especificar complementos adicionales para pytest.principal:
# contenido de myinvoke.py
importar pytest
clase MyPlugin:
def pytest_sessionfinish (auto):
imprimir ("*** ejecución de prueba informando finalización")
pytest.main ("- qq", complementos = [MyPlugin ()])
Ejecutarlo mostrará que Mi complemento fue agregado y su gancho fue invocado:
$ python miinvocar.py
*** ejecución de prueba informando finalización
Use py.test-3 en línea usando los servicios de onworks.net