Ответ 1
Я считаю, что это просто соглашение - я не думаю, что есть какие-либо технические преимущества в любом случае.
Я лично предпочитаю первую версию по совершенно нетехническим причинам:
- Кажется излишним иметь два "тестовых" каталога в пути.
- Это может вызвать путаницу, чтобы иметь тестовые .clj файлы с теми же именами, что и основные .clj файлы.
- Иногда вы хотите создавать тесты, которые не идеально совпадают с конкретными пространствами имен, например.
full_system_test.clj
для сквозного тестирования - Легче сопоставлять шаблоны во всех файлах
*_test.clj
Также стоит отметить, что стандартная раскладка макетов Maven также используется в целом ряде проектов Clojure (это может быть удобно, если вы строить проекты polyglot, которые также содержат исходный код Java):
src/main/clojure/myproject/core.clj
src/test/clojure/myproject/core_test.clj
src/main/resources/....
src/test/resources/....