Ich bin in letzter Zeit selbst auf dieses Problem gestoßen, und Mann, es ist schwierig, Antworten darauf zu finden.
Der Fehler, den Sie machen, besteht darin, dass ein Projekt seine Testelemente genauso exportieren sollte wie seine primären Artefakte und Abhängigkeiten.
Ich persönlich hatte viel mehr Erfolg damit, ein neues Projekt in Gradle zu machen. In Ihrem Beispiel würde ich es nennen
Projekt A_Test -> src / main / java
Ich würde die Dateien, die Sie derzeit in Projekt A / src / test / java haben, in src / main / java einfügen. Machen Sie alle testCompile-Abhängigkeiten Ihres Projekts A kompilieren Sie Abhängigkeiten von Project A_Test.
Machen Sie dann Projekt A_Test zu einer testCompile-Abhängigkeit von Projekt B.
Es ist nicht logisch, wenn man es aus der Sicht des Autors beider Projekte betrachtet, aber ich denke, es ist sehr sinnvoll, wenn man an Projekte wie junit und scalatest (und andere) denkt. Auch wenn diese Frameworks testbezogen sind, sind sie es werden nicht als Teil der "Test" -Ziele innerhalb ihrer eigenen Frameworks betrachtet - sie erzeugen primäre Artefakte, die andere Projekte zufällig in ihrer Testkonfiguration verwenden. Sie möchten nur demselben Muster folgen.
Der Versuch, die anderen hier aufgeführten Antworten zu geben, hat für mich persönlich nicht funktioniert (mit Gradle 1.9), aber ich habe festgestellt, dass das hier beschriebene Muster ohnehin eine sauberere Lösung ist.