Всем привет! У нас сейчас занимаются написанием автотестов два человека, один из которых я.
Я выношу всю реализацию в раздел main, а сами тесты выношу в раздел test
Коллега все делает в разделе test
Интересно ваше мнение по поводу того, как лучше реализовывать проект. Всё делать в разделе test или всё же всю обработку выносить в раздел main. Спасибо
Если репа с селениум тестами будет единственной - тогда всё равно.
Если будет необходимость объединить несколько тестовых реп как зависимости - то методы одной репы будут видны в другой только если будут находиться не в test. Так что Ваш подход более универсален.
Все компоненты, которые могут быть использованы вне ваших тестов и НЕ содержат бизнес-логику тестируемого приложения нужно переместить в main. В идеале можно написать на них unit тесты, особенно, если этими компонентами пользуется еще, кто-то.
Следующий уровень: мульти-модульный проект. В модуль ‘core’ выносят все такие компоненты, делаю их слабосвязными и пишу для них юнит-тесты. Потом ‘core’ проект добавляется в зависимости тестового проекта. Также можно сделать publishing в nexus и версионирование, чтобы core проектом могли пользоваться другие команды.
Следующий уровень - это вынести шаги (тоже без бизнес логики) в модуль ‘[your-system]-steps’ и сделать тоже самое как и для ‘core’, только скорее всего тут понадобятся уже интеграционные тесты для шагов. Для таких тестов удобно использовать TestContainers, например, для поддержания качества шагов по работы с БД - SqlTestContainer (PgTestContainer).
И вот только проверяемую бизнес-логику и специфичные для тестов шаги или комплексные нужно поместить в вашу папку ‘test’
Но все актуально для большого проекта и команды QA. Если проект не большой, то как у вас сделано - ОК