Я сам недавно столкнулся с этой проблемой, и мужик, это сложные вопросы, чтобы найти ответы.
Ошибка, которую вы делаете, заключается в том, что проект должен экспортировать свои тестовые элементы так же, как он экспортирует свои основные артефакты и зависимости.
То, с чем я лично добился гораздо большего успеха, - это создание нового проекта в 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), но я обнаружил, что шаблон, который я здесь описываю, в любом случае является более чистым решением.