Sam ostatnio natknąłem się na ten problem i człowieku jest to trudne zagadnienie do znalezienia odpowiedzi.
Błędem, który popełniasz, jest myślenie, że projekt powinien eksportować swoje elementy testowe w taki sam sposób, w jaki eksportuje swoje podstawowe artefakty i zależności.
Osobiście odniosłem dużo większy sukces, że zrobiłem nowy projekt w Gradle. W twoim przykładzie nazwałbym to
Projekt A_Test -> src / main / java
Umieściłbym w katalogu src / main / java pliki, które obecnie masz w projekcie A / src / test / java. Utwórz wszelkie zależności testCompile projektu Kompiluj zależności projektu A_Test.
Następnie ustaw projekt A_Test jako zależność testCompile projektu B.
Nie jest to logiczne, jeśli spojrzysz na to z perspektywy autora obu projektów, ale myślę, że ma to dużo sensu, gdy myślisz o projektach takich jak junit i scalatest (i innych. Mimo że te frameworki są związane z testowaniem, nie są uważane za część celów „testowych” w ich własnych strukturach - wytwarzają podstawowe artefakty, których inne projekty po prostu używają w swojej konfiguracji testowej. Po prostu chcesz podążać za tym samym wzorcem.
Próba wykonania innych wymienionych tutaj odpowiedzi nie zadziałała dla mnie osobiście (używając Gradle 1.9), ale stwierdziłem, że wzór, który tu opisuję, i tak jest czystszym rozwiązaniem.