2012-03-25 17 views
6

¿Existe una estructura de directorio particular utilizada para TDD en Python?Estructura de directorio de Python TDD

tutoriales hablar sobre el contenido de las pruebas, pero no dónde colocarlos

De hurgando Python Koanes, sospechan que es algo como:

/project/main_program.py   # This has main method, starts program 
/project/classes/<many classes>.py 
/project/main_test.py   # This simply directs unittest onto tests, can use parameters fed to it to customise tests for environment 
/project/tests/<many tests>.py 

# to run tests, type "python -m unittest main_test.py" (into a terminal) 
# to run program, type "python main_program.py" 

estoy haciendo esto derecha ? ¿Hay una buena guía que enseñe la jerarquía del directorio para TDD? Escuché que tener archivos mezclados de código y pruebas es malo.

Referencias:

+0

Para principiantes: si tiene la estructura que se muestra arriba, para probar /project/classes/codey.py con /project/tests/testy.py, tendrá "import codey from classes" escrito en testy.py para que sabe dónde mirar. Al importar, Python busca. Entonces, si tuviera /cat/sat/on/sometest.py y /cat/trolled/dog/somecode.py, entonces "import somecode de cat.trolled.dog" iría a la prueba. – xxjjnn

Respuesta

4

en base a su proje ct, cualquier estilo que permite

  • código de aplicación separada de código de prueba
  • crear nuevas pruebas de fácil
  • ejecutar todas las pruebas en una operación (por ejemplo, para las pruebas de regresión)

Los python koans/etc son solo pautas. Al final, desea mantener DRY con sus unittests y poder realizar pruebas de manera fácil, sostenible e intuitiva. Al final, depende de usted decidir la estructura de su carpeta.

Creo que se está centrando demasiado en satisfacer las convenciones en lugar de satisfacer su proyecto.

+1

Eso es genial, no importa =) Piensa fuera del ... hey, ¿qué hiciste con la caja de Python? – xxjjnn

+0

Todavía es una pregunta válida, y finalmente se pregunta en cada foro de lenguaje de programación. Ref http://stackoverflow.com/questions/193161/what-is-the-best-project-structure-for-a-python-application para obtener más notas. –

1

Hay dos opciones básicas: en un directorio de "prueba" (o "pruebas") de alto nivel, o en directorios de "prueba" dentro de su paquete en todos los niveles. El primero tiene la ventaja de facilitar la realización de pruebas unitarias y otras pruebas consistentemente. Este último tiene la ventaja de facilitar la ejecución de las pruebas en comparación con la versión instalada del código, y lo recomienda this blog post, que describe la estructura básica que funciona bien para los proyectos de Python.

Al final del día, lo importante es facilitar su localización y ejecución.

Cuestiones relacionadas