Что такое тест, а что такое приложение?
Давайте подумаем о том, как тест вписывается в картину ...
- Тест не имеет прямого отношения ко всему, о чем беспокоится публика - он просто хочет, чтобы он работал
- Тест для разработчиков и, как правило, для бизнеса
- Тесты могут быть в том же масштабе, что и модули, но в дихотомическом расположении
- Если тестовые файлы могут существовать рядом с его модулем в заданной инкапсулирующей структуре, то логически - в фрактальной архитектуре - часть теста также должна быть распределена в масштаб объекта в данном модуле. (Подумайте, directory | _file | _module | _object - где
system == component && component == system && (system == system || system == subsystem )
)
Последний из них должен показать, что тесты по своей сути дискретны от модулей и логически не дополняют друг друга в каждом масштабе. Чтобы действительно это понять, я призываю вас изучить fractals & self -симметрия , Теория типов и Теория категорий .
Тем не менее, специфика приложения может кардинально изменить имеющиеся у вас опции ...
Исходя из перспективы JavaScript, независимой и даже с использованием продвинутой архитектурной схемы - кажется, что включение ваших тестов в /src
может усложнить процесс сборки. Более того, вы создаете менее читабельное с логической привязкой для других разработчиков, когда в вашем каталоге src есть несколько, гораздо меньше тестов. Вы действительно хотите защитить и инкапсулировать своих тестов, приватизируя их для членов вашей команды, а не для того, чтобы кто-либо публично взаимодействовал с вашим приложением.
Тем не менее, возможно, стоит пойти по этому пути на основе специфики приложения - ЕСЛИ - вы можете убедиться, что оно безопасно и не создает ненужных сложностей, или душить автоматизацию .
Некоторые продвинутые архитектуры используют этот подход для целей всеобъемлющей инкапсуляции в дискретных масштабах , но все же могут привести к издержкам для безопасности, автоматизации и производительности (а значит, и для бизнеса) ).
Как правило, используйте стандартные строительные леса:
/app
|-lib
|-src
|-test
.. вы, вероятно, не можете пойти не так с этим.