2015-01-13 5 views
1

Задачи: что у меня есть это большой без Gradle (сделать :-)) проект, который содержит множество подпроектов, каждый из которых в своем собственном подкаталоге. Я должен написать функциональный тест для некоторых из этих подпроектов. Эти подпроекты производят независимые результаты, но с одинаковой структурой, поэтому существует множество распространенных кодов для тестирования этих подпроектов, поэтому я хочу поделиться им в определенном месте.идиоматическая структура Gradle проекта для испытаний

Ограничения:

  • разработчики просили, тесты на подпроекты должны находиться в каталоге этого подпроекта (точнее, в подкаталоге, например, func_tests).
  • У меня есть общие зависимости для моих тестовых проектов, которые я обычно использую, например, в Google Guava, TestNG и т. Д., А также некоторые настройки для пробного запуска (excludeGroups 'slow' ...), и я предпочитаю, чтобы эти настройки были общий, тем не менее, это не имеет большого значения.
  • символические ссылки принимаются способом, если это хороший дизайн :)
  • Если возможно, я хочу, чтобы IntelliJ IDEA правильно обрабатывал эту зависимость.

Мои идеи:

  • символическая ссылка src/main каждого тестового подпроекта к некоторому общему каталогу (src/test является "индивид"). Это сильно поддержит IDE, но это приведет к копированию всех зависимостей и предпочтений. Кроме того, я очень не уверен, если это предпочтительнее, чем в Gradle.
  • создать общий проект, который будет imported по каждому подпроекту, это сохранит зависимости (будет?), Но я не уверен, что IDEA правильно обработает этот путь.

Что такое идиоматический способ сделать это с помощью Gradle?

ответ

1

Посмотрите на samples/java/withIntegrationTests в вашей установке «Подложка». Это даст вам представление о том, как добавить свои тесты (есть и другие способы). Вы хотите настроить эту настройку, чтобы убедиться, что IDEA обрабатывает ваши тесты. Это делается путем настройки idea.module.scopes.

Общий код и общие библиотеки: вы можете создать такую ​​карту, как https://github.com/gradle/gradle/blob/master/gradle/dependencies.gradle, и использовать ее в разных подпроектах. BTW: Кодовая база Gradle имеет множество интеграционных тестов, и вы можете проверить, как их сборка настроена, чтобы увидеть, хотите ли вы применить некоторые идеи.

Смежные вопросы