¿Dónde debo poner mi código de prueba en relación con el código que está probando?

StackOverflow https://stackoverflow.com/questions/1882707

  •  19-09-2019
  •  | 
  •  

Pregunta

Los dos lugares obvios que se me ocurre sería una especie de carpeta "prueba" justo al lado del código que estoy trabajando. Así que algo como:

\project-code
    \my-feature
        \production-code
        \testing
            ***my tests***
    \co-workers-feature
        \production-code
        \testing

O podría dividir el código de prueba de una jerarquía completamente separados. Así que algo como:

\project-code
    \my-feature
    \co-workers-feature
\testing-project-code
    \my-feature
        ***my tests***
    \co-workers-feature

He visto una gran cantidad de marcos de utilizar el segundo método, pero recientemente hemos estado poniendo nuestro código de prueba dentro del código de producción en su mayoría por conveniencia. Es un enfoque mucho mejor que el otro o hay una mejor práctica aquí?

¿Fue útil?

Solución

Yo uso la segunda opción. Eso significa que puede enviar el código sin las pruebas si es necesario. Además de mirar la clase o paquete que sé donde las pruebas unitarias para que lo son.

Aquí hay una pregunta relacionada:

¿Usted pone las pruebas de unidad en la misma proyecto u otro proyecto?

Otros consejos

Póngalos donde sea más conveniente para usted. Usted puede configurar su sistema de construcción para eliminarlos del producto final, si se desea. La prueba es una "mejor práctica". Cualquier cosa que hace más fácil la prueba sin reducir su eficacia es simplemente mejorando en una mejor práctica.

Yo prefiero mantener las pruebas de unidad estrecha. He visto la opción 1 de trabajo bien. Para un proyecto pequeño, ambos enfoques no tendrán ningún problema, pero a medida que el proyecto se hace más grande y más grande, es más difícil de encontrar y mantener las pruebas cuando viven en una parte muy diferente del árbol. Si están cerca, cambiándolos será natural cuando se cambia el código de producto. Si ellos están muy lejos, se necesita más esfuerzo mental y se ignorará más. Esto significa una mayor probabilidad de que serán sincronizados.

Tenga en cuenta que al hacer esto se necesita un sistema de construcción que permite la compilación condicional de los directorios de prueba. Usted no quiere tener que construir ellos en todo momento. Si no puede conseguir eso, podría ser necesario un árbol separado.

Si su un sitio web que permite controlar a continuación, no hace daño a tenerlo todo en la misma carpeta. Si su software clásico que se suelta a continuación, que tiende a ser una buena práctica para tenerlo separado como en el caso 2, de modo que no cause ningún tipo de hinchazón accidentalmente cuando se suelta.

Para mí, la primera opción tiene más sentido, sobre todo desde un punto de vista SMC: código de producción y el código de prueba están muy bien mantienen sincronizados (como debe ser) y, si marca o rama su proyecto, marca o rama tanto la producción como el código de prueba en el mismo tiempo (como debe ser).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top