xticks python unit-testing discovery

xticks - subplot title python



Prueba y descubrimiento de Python (3)

Indique cómo está tratando de usar unittest2 desde la línea de comando en Python < 2.7 , creo que se ha perdido la nota en la página PyPI de unittest2 :

Nota

Uso de línea de comando

En Python 2.7 invocas las características de la línea de comando de unittest (incluido test discover) con python -m unittest <args> . Como unittest es un paquete y la capacidad de invocar paquetes con python -m ... es nuevo en Python 2.7, no podemos hacer esto para unittest2.

En cambio, unittest2 viene con una unidad de script2. Uso de línea de comando:

unit2 discover unit2 -v test_module

También hay una copia de este script llamado unit2.py , útil para Windows que usa extensiones de archivo en lugar de líneas de shebang para determinar con qué programa ejecutar archivos. Ambos scripts son instalados por distutils.

¿Has probado el script unit2 que esta nota recomienda como la alternativa para Pythons más antiguos a la función "ejecutar paquete como script principal" de Python 2.7? Tal vez sus fuentes también podrían ser útiles para descubrir exactamente cómo descubrir y ejecutar pruebas desde su propio código, si eso es lo que prefiere hacer.

Tengo directorios, que contienen archivos con el nombre: test_foo.py

Cada archivo es un caso de prueba.

me gustaría

1) Ejecute todas las pruebas en un directorio desde la línea de comando. Estoy usando unittest2 , ya que estamos ejecutando Python 2.5.1. De uno de estos directorios traté de escribir esto en la línea de comando:

python -m unittest2 discover -p ''test_*.py''

y varias variantes diferentes. No obtengo ningún error, pero no pasa nada. Esperaba que todas las pruebas dentro de todos los casos de prueba en ese directorio se ejecutaran y obtuviera resultados.

2) También intenté tener un script en el directorio donde hice esto:

loader = unittest2.TestLoader() t = loader.discover(''.'')

Si imprimo la variable t , puedo ver mis casos de prueba, pero de los documentos no puedo entender qué hacer con el objeto cargador una vez que lo tengo.


Me encontré con el mismo problema al ejecutar python -m unittest discover . Aquí hay una buena lista de verificación para verificar su configuración. Nose es más flexible con las configuraciones permitidas, pero no necesariamente mejor.

  1. Asegúrese de que todos los archivos / directorios comiencen con la test . No use test-something.py , ya que ese no es un nombre de módulo de python válido. Use test_something.py .

  2. Si está colocando sus pruebas en un subdirectorio (por ejemplo, test/ ), asegúrese de crear un archivo de test/__init__.py para que python trate el directorio como un paquete.

  3. Todas las definiciones de casos de prueba de clase deben extenderse unittest.TestCase . Por ejemplo

    class DataFormatTests(unittest.TestCase)


Una vez que haya descubierto las pruebas, puede ejecutarlas con un corredor de prueba.

import unittest2 loader = unittest2.TestLoader() tests = loader.discover(''.'') testRunner = unittest2.runner.TextTestRunner() testRunner.run(tests)

Ejecutar el código anterior imprimirá los resultados de la prueba a la salida estándar.