Ich hoffe, dass dies nur etwas ist, das ich hier falsch mache. Ich versuche, Dolch 2.0 zu verwenden, um Abhängigkeiten für meine JUnit-Tests zu injizieren (nicht Espresso-Tests, nur reine JUnit). Also, ich habe ein "Main" Java Modul und ein "Test" Java Modul. Im Hauptmodul, habe ich einen Dolch Modul bekam und eine Komponente:Dolch 2 generiert Testkomponente nicht erkannt
@Module
public class MainModule {
@Provides
public Widget provideWidget() {
return new ConcreteWidget();
}
}
...
@Component (modules = MainModule.class)
public interface MainComponent {
void inject(WidgetConsumer consumer);
}
Und in meinem Testmodul, habe ich folgendes:
@Module
public class TestModule {
@Provides public Widget provideWidget() {
return new Widget() {
@Override
public void doThing() {
int y = 6;
y ++;
}
};
}
}
...
@Component(modules = TestModule.class)
public interface TestComponent extends MainComponent{
}
Meine build.gradle hat Abhängigkeiten, die wie folgt aussehen dies:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.2.0'
testCompile 'junit:junit:4.12'
compile 'com.google.dagger:dagger:2.9'
testCompile 'com.google.dagger:dagger:2.9'
annotationProcessor 'com.google.dagger:dagger-compiler:2.9'
testAnnotationProcessor 'com.google.dagger:dagger-compiler:2.9'
}
Aus welchem Grund auch immer, Dolch erzeugt DaggerMainComponent
, weigert sich aber, DaggerTestComponent
zu erzeugen. Es scheint keine Fehler in der Graustufenausgabe zu geben, wenn ich baue.
Hier ist die Sache ... Ich denke, der Annotationsprozessor läuft, aber irgendwie kann das Android-Gradle-Plugin diese generierten Quellen während der Kompilierzeit nicht erfassen. Ich habe das Verzeichnis app/build/generated/source/apt/test/inspiziert und dort DaggerTestComponent.java
gefunden, aber aus irgendeinem Grund wird es nicht als Abhängigkeit importiert.
Irgendwelche Gedanken? Here is a link to a test project showing my issue
Bitte senden Sie ein Testprojekt wenn möglich. – azizbekian
Sicher Sache. Bearbeitete meine Antwort, um einen Link zu einem Testprojekt hinzuzufügen. – Alex