Короткий ответ заключается в том, что инструментарий, предоставляемый тестовым проектом для основного проекта, позволяет выполнять обратные вызовы в отношении методов жизненного цикла основного проекта.Это дает контроль над тем, как загружается основной проект.
Если бы тесты были частью основного проекта, я не думаю, что он работал бы так же.Основной проект должен быть загружен для запуска тестов, и тогда вы не сможете на самом деле проверить, как проект загружался.
Проверьте эту ссылку на сайте разработчика.У него есть довольно веские аргументы для отдельного проекта.
Также отметьте этот вопрос / ответ , так как они затрагивают одну и ту же тему.