2011-08-15 16 views
12

En lugar de ejecutar mis pruebas de nariz desde la línea de comandos, estoy usando un corrector de prueba que establece algunas cosas para todas las pruebas, incluida una conexión a una instancia de prueba local de MongoDB. La documentación para nose solo parece indicar cómo pasar opciones a través de la línea de comando o un archivo de configuración ubicado en su directorio de inicio. ¿Hay alguna manera de pasar opciones, como --with-xunit cuando se usa un script para ejecutar tus pruebas?Pasando opciones a la nariz en un script de prueba de Python

Respuesta

8

De esta manera:

import nose 

argv = ['fake', '--with-xunit'] 
nose.main(argv=argv) 

El argumento "falso" se debe agregar a sustituir al nombre del ejecutable, como se describe en la respuesta de dbw.

+0

intenté esto, pero no se está generando un informe –

+0

@Matt: ¿Estás seguro? porque estoy usando el mismo fragmento de código en uno de mis proyectos, y acabo de cambiar ahora para generar un informe 'xunit' y fue generado con éxito bajo' nosetests.xml'! tal vez me falta algo ... – mouad

+0

Sí, lo intenté primero y no se generó un informe. Intenté con línea de comando y obtuve uno. Lo siento: -/ –

16

La nariz hace algo furtivo con el primer argumento, por lo que no se analiza. Mi envoltura de la nariz hace algo como esto:

import nose 
import sys 

argv = sys.argv[:] 
argv.insert(1, "--with-xunit") 
nose.main(argv=argv) 

Como beneficio adicional, esto permite que los clientes de su programa para utilizar argumentos de la nariz para controlar su comportamiento!

+0

Funciona. Gracias. – KobeJohn

+1

Creo que esta es la respuesta más correcta. El punto acerca de que Nariz es astuto con el primer argumento es un punto muy importante. – munk

+5

nose is not sneaky :) El punto es que la lista 'argv' siempre comienza con el nombre del ejecutable. Por lo tanto, cuando dices 'argv = ['--with-xunit']', estableces el nombre del ejecutable en '--with-xunit', y no pasas ningún argumento. Para arreglar esto, use 'argv = ['fake', '--with-xunit']' – Timur

Cuestiones relacionadas