Ich baue eine Android-Komponente in Form eines Grapple-Projekts. Um meine Komponenten-UI in mehreren Konfigurationen mit dem espresso Framework zu testen, habe ich einen TestActivity
im androidTest
Quellsatz, den ich instrumentieren kann.Organisieren Sie geteilten Code zwischen Android Test und Test
den Dateibaum Zur Klarstellung:
src/
androidTest/
java/my.package/
TestActivity.kt
...
res/layout/
my_test_activitity.xml
test/
java/my.package/
MyUnitTests.kt
Jetzt möchte ich mit robolectric für einige meiner Unit-Tests beginnen und auch meine TestActivity
von dort zu testen. Interessanterweise Android Studio beschwert sich nicht, wenn ich ein Setup Robolectric in MyUnitTests.kt
:
val activity = Robolectric.setupActivity(TestActivity::class.java) // no error
aber wenn ich versuche, die Unit-Tests laufen zu lassen, ist gradle mich mit diesem Fehler vor:
e: src/test/java/my.package/MyUnitTests.kt: Unresolved reference: TestActivity
Meine Vermutung ist, dass die test
Source-Set hat keinen Zugriff auf die androidTest
Source-Set, obwohl Android Studio scheint zu denken, dass es hat.
Wie kann ich das beheben (machen Klassen und Ressourcen in androidTest
zugänglich von test
)? Ist das überhaupt der richtige Ansatz, wenn Code zwischen Instrumentierungstests und Komponententests ausgetauscht wird, oder gibt es einen besseren Weg?