world tutorial online hello framework examples clojure

tutorial - Convención de espacio de nombres de prueba de clojure



clojure tutorial (1)

Creo que esto es solo una convención, no creo que haya ninguna ventaja técnica de ninguna manera.

Personalmente prefiero la primera versión por razones totalmente no técnicas:

  • Parece redundante tener dos directorios de "prueba" en la ruta.
  • Puede causar confusión tener los archivos de prueba .clj con los mismos nombres que los archivos principales .clj
  • A veces desea crear pruebas que no se full_system_test.clj perfectamente con espacios de nombres específicos, por ejemplo, full_system_test.clj para full_system_test.clj de extremo a extremo
  • Es más fácil hacer coincidir patrones en todos los archivos *_test.clj

También vale la pena señalar que la convención de diseño de directorio estándar de Maven también se usa en bastantes proyectos de Clojure (esto puede ser útil si crea proyectos políglotas que también contienen código fuente de Java):

src/main/clojure/myproject/core.clj src/test/clojure/myproject/core_test.clj src/main/resources/.... src/test/resources/....

Tradicionalmente, he usado la misma estructura de carpetas para la producción y el código de prueba como se muestra a continuación:

src/myproject/core.clj test/myproject/core_test.clj

Para los archivos de prueba he añadido _test en el nombre de archivo.

Recientemente noté que varios proyectos siguen esta estructura (esto también es lo que Leiningen genera de forma predeterminada):

src/myproject/core.clj test/myproject/test/core.clj

¿Existe alguna convención con respecto a esto o alguna ventaja clara de usar una sobre la otra?