python unit-testing nose nosetests pycharm

python - ¿Cómo se ejecuta más nosotras de pycharm?



unit-testing nose (3)

¿Cómo se ejecuta el test de pycharm para ejecutar todas las pruebas unitarias?

Sé que pycharm es compatible con pyton''s unittest y py.test y que respaldarán adecuadamente las muestras de pycharm 1.1, pero me preguntaba si habría algún problema.


Esto es fácil de lograr ...

Supongo que ya tienes la nariz instalada.

Y que tu proyecto parezca

/MyProj_Source /MyProj init.py MyProj.py

Necesitamos crear un directorio de Pruebas (Sí, el nombre parece ser crítico). Y en esa carpeta de Pruebas colocamos nuestro archivo de prueba de nariz. Así que la estructura del Directorio se ve así.

/MyProj_Source /MyProj init.py MyProj.py /Tests test_stuff.py

En este punto tienes que ir a

Preferencias-> Herramientas -> Herramientas integradas de Python ** y establecer ** Corredor de prueba predeterminado para ser nariz

Ahora deberías poder

A mano

  • Ejecutar test_stuff.py usando la nariz
  • Habilite la prueba automática para el archivo MyProj.py, así que después de cualquier cambio, se ejecutan las pruebas

La segunda forma es la mejor opción, pero puede llevar un poco de tiempo.

Espero que ayude.


Si puede vivir sin el corredor de prueba gráfico, puede simplemente crear una configuración de ejecución de "Script Python" y ejecutar las pruebas a medida que las ejecuta desde la línea de comandos.

Me temo que la única forma de que las pruebas de nariz funcionen con el corredor de pruebas gráficas es hackear helpers / pycharm / utrunner.py de la distribución de PyCharm.


En la versión actual de Pycharm (2.6) debería haber un menú de contexto "ejecutar Nosetests in ..." en un archivo de prueba. Si falta esto, vaya a file->settings->Project Settings->python integrated tools y asegúrese de que el Test Runner predeterminado sea Nosetests. Por supuesto, debe tener instalado Nosetests - pycharm ofrecerá esto si no lo hace.

Esto tiene una limitación. Si el archivo en cuestión no tiene una clase derivada de unittest.TestCase, no se mostrará automáticamente. Si está utilizando nose.tools o simples afirmaciones, no se ofrecerá automáticamente. Este es probablemente un error.