Я сам нещодавно зіткнувся з цією проблемою, і людині це важкі питання, на які можна знайти відповіді.
Помилка, яку ви робите, - це думка, що проект повинен експортувати свої тестові елементи так само, як експортувати свої основні артефакти та залежності.
Що я особисто мав набагато більше успіхів, то робив новий проект у Gradle. У вашому прикладі я би назвав це
Проект A_Test -> src / main / java
Я б поклав у src / main / java файли, які у вас зараз є у Project A / src / test / java. Створіть будь-які залежності testCompile свого проекту. Компілюйте залежності Project A_Test.
Тоді зробіть Project A_Test тестовою залежністю проекту B.
Це не логічно, коли ви підходите до цього з точки зору автора обох проектів, але я думаю, що це має багато сенсу, коли ви думаєте про проекти, такі як junit та scalatest (та ін. Хоча ці рамки пов'язані з тестуванням, вони не вважаються частиною "тестових" цілей у своїх власних рамках - вони створюють первинні артефакти, які інші проекти просто випадково використовуються в їх тестовій конфігурації.
Спроба зробити інші відповіді, перелічені тут, не працювала особисто для мене (використовуючи Gradle 1.9), але я виявив, що модель, яку я тут описую, все одно є чистішим рішенням.