J'ai rencontré ce problème moi-même récemment, et il est difficile de trouver des réponses à ces questions.
L'erreur que vous commettez est de penser qu'un projet doit exporter ses éléments de test de la même manière qu'il exporte ses artefacts primaires et ses dépendances.
Personnellement, j'ai eu beaucoup plus de succès avec la création d'un nouveau projet dans Gradle. Dans votre exemple, je l'aurais nommé
Projet A_Test -> src/main/java
Je mettrais dans src/main/java les fichiers que vous avez actuellement dans Project A/src/test/java. Faites en sorte que toutes les dépendances testCompile de votre Projet A compilent les dépendances du Projet A_Test.
Ensuite, faites du projet A_Test une dépendance testCompile du projet B.
Ce n'est pas logique si l'on se place du point de vue de l'auteur des deux projets, mais je pense que cela a beaucoup de sens si l'on pense à des projets comme junit et scalatest (et d'autres). Même si ces frameworks sont liés aux tests, ils ne sont pas considérés comme faisant partie des cibles de "test" dans leurs propres frameworks - ils produisent des artefacts primaires que d'autres projets utilisent par hasard dans leur configuration de test. Vous voulez simplement suivre ce même modèle.
Essayer de faire les autres réponses listées ici n'a pas fonctionné pour moi personnellement (en utilisant Gradle 1.9), mais j'ai trouvé que le modèle que je décris ici est une solution plus propre de toute façon.
2 votes
Duplicata possible : stackoverflow.com/questions/5144325/gradle-test-dependency