Я недавно столкнулся с этой проблемой, и человек это трудные вопросы, чтобы найти ответы.
Вы делаете ошибку, думая, что проект должен экспортировать свои тестовые элементы так же, как он экспортирует свои основные артефакты и зависимости.
То, с чем я лично добился гораздо большего успеха, - это создание нового проекта в Gradle. В вашем примере я бы назвал это
Проект A_Test -> src / main / java
Я бы поместил в src / main / java файлы, которые у вас есть в Project A / src / test / java. Сделайте любые зависимости testCompile вашего Project A зависимости компиляции Project A_Test.
Затем сделайте Project A_Test зависимостью testCompile проекта B.
Это не логично, когда вы подходите к этому с точки зрения автора обоих проектов, но я думаю, что это имеет смысл, когда вы думаете о таких проектах, как junit и scalatest (и другие. Даже если эти фреймворки связаны с тестированием, они не считаются частью «тестовых» целей в их собственных средах - они создают основные артефакты, которые другие проекты используют в своей тестовой конфигурации. Вы просто хотите следовать той же схеме.
Попытка сделать другие ответы, перечисленные здесь, не сработала лично для меня (используя Gradle 1.9), но я обнаружил, что шаблон, который я здесь описываю, в любом случае является более чистым решением.