2010-07-27 21 views
9

Estoy trabajando en un proyecto que recientemente cambió al marco de prueba de unidad py.test. Solía ​​llamar a mis pruebas desde Eclipse, para poder usar el depurador (por ejemplo, colocar puntos de interrupción para analizar cómo se desarrolla una falla de prueba). Ahora esto ya no es posible, ya que la única manera de ejecutar las pruebas es a través de la línea de comando blackbox.Cómo usar py.test de Python?

¿Hay alguna forma de utilizar py.test desde dentro de Python, para que uno no se vea obligado a abandonar el IDE? Por supuesto, las pruebas no se deben ejecutar en un proceso separado.

Respuesta

18

Creo que ahora puedo responder a mi propia pregunta, es bastante simple:

import py 
py.test.cmdline.main(args) 

entonces puedo ejecutar este módulo y o iniciarlo con el depurador integrado.

args es la lista de argumentos de línea de comandos, así que por ejemplo para ejecutar sólo las pruebas particulares que puedo usar algo como:

args_str = "-k test_myfavorite" 
py.test.cmdline.main(args_str.split(" ")) 
1

No he intentado con eclipse, pero como se sugirió en un related question, es posible utilizar la opción de línea de comando --pdb con py.test. Tal vez es posible configurar eclipse de esa manera.

Sin embargo, llamar al estándar import pdb;pdb.set_trace() no llamará directamente al depurador. Primero emitirá un error que a su vez activará el depurador. Esto puede o no hacer que las cosas funcionen de manera diferente.

+0

Gracias, yo era consciente de la 'interruptor --pdb'. Creo que en este caso pdb es controlado e iniciado por py.test, que no funcionará para Eclipse (quiero que mi Eclipse en ejecución tome control de la depuración). – nikow

1

Tal vez usted podría darle una oportunidad a pycharm que tiene la integración directa con py.test (Lo uso en el trabajo) y el depurador funciona perfectamente.

+0

Gracias, por la sugerencia. Recientemente tuve la oportunidad de usar PyCharm 2.5, y estoy de acuerdo en que funciona muy bien. En este momento estoy dividido entre PyCharm y Aptana Studio. – nikow

+0

@nikow: Empecé a usar aptana ... lo odié, también, si te familiarizas con pycharm también puedes utilizar phpstorm, rubymine, intellij ... todos estos IDE son de jetbrains, y tienen la misma estructura, atajos ... Así que definitivamente vale la pena. Yo solía ser un fanático del eclipse, pero sé que los cerebros del cerebro me dieron :) –

+0

+1 para PyCharm. Estaba usando Aptana para PHP pero después de usar PyCharm voy a cambiar gradualmente a los productos de JetBrain –

3

Esto es ahora compatible con PYtest y describe muy bien here en la documentación.

0

Usted sólo puede ejecutar py.test --pdb si lo que desea es un depurador y no es necesario el IDE

Cuestiones relacionadas