2012-02-15 22 views
5

Estoy desarrollando una colección de paquetes/módulos Python (no ejecutables). Cuál es la mejor/mejor forma de configurar la jerarquía de archivos para la prueba. No puedo pensar en dos escenarios:Jerarquía de archivos adecuada para pruebas unitarias en Python

Escenario 1:

AllPackages/ 
    package1/ 
     module1-1.py 
     module1-2.py 
    package2/ 
     module2-1.py 
     module2-2.py 
    tests/ 
     package1/ 
      test_module1-1.py 
      test_module1-2.py 
     package2/ 
      test_module2-1.py 
      test_module2-2.py 

Escenario 2:

AllPackages/ 
    package1/ 
     module1-1.py 
     module1-2.py 
     tests/ 
      test_module1-1.py 
      test_module1-2.py 
    package2/ 
     module2-1.py 
     module2-2.py 
     tests/ 
      test_module2-1.py 
      test_module2-2.py 

Soy nuevo a prueba unitaria (sé que debería haber hecho hace mucho tiempo), así que' No estoy seguro de cuál de estos enfoques es mejor y estoy buscando algunos consejos de aquellos que tienen más experiencia.

Gracias!

Respuesta

1

El segundo escenario le permite tener paquetes conectables y se utiliza al menos en Django framework (para mencionar algunas autorizaciones). Si utiliza el módulo simple unittest, tiene la utilidad discover, que encontrará todas las pruebas que tenga en la carpeta de su proyecto, sin importar cómo las haya organizado, por lo que el segundo método se ajusta aquí también.

+0

Gracias, parece una buena solución. Me gusta que sea expansible cuando agrego más paquetes y módulos. – jlconlin

1

El escenario 1 es mejor, en mi opinión. Hace las cosas más fáciles cuando despliegas, por ejemplo. No desea implementar código de prueba, por lo que simplemente omite el directorio tests/ en su paquete. Este enfoque es mucho más limpio.

El escenario 2 es desordenado; No veo ninguna ventaja de mezclar código de prueba y código de producción de esta manera.