2016-06-12 8 views
0

Ich schreibe Annotation Prozessor für mein Android-Projekt und ich teste es mit Google Compile-Test.Test Apt Argument für Annotation Prozessor mit Google Compile-Test

Alles funktioniert gut, außer dass ich apt plugnin Argument zu meinem Annotationsprozessor testen kann.

Meine Anmerkung Prozessor hat diese Option, die ich testen will:

@Override 
public Set<String> getSupportedOptions() { 
    Set<String> options = new HashSet<>(); 
    options.add("generated_class_suffix"); 
    return options; 
} 

ich scheine nicht zu bekommen, wie ich diese Optionen übergeben kann kompilieren Test-Bibliothek zu testen. Ich habe versucht, withCompilerOptions wie folgt:

assertAbout(javaSource()) 
      .that(source) 
      .withCompilerOptions("saver_suffix") 
      .processedWith(new CodegenProcessor()) 
      .compilesWithoutError() 
      .and() 
      .generatesSources(generated); 

aber es gibt mir folgende Fehlermeldung:

java.lang.IllegalArgumentException: invalid flag: saver_suffix 

Ich bin nicht sicher, wie die Möglichkeit, zu übergeben.

Antwort

0

fand ich von der Standard-javacdocumentation, wie Optionen in Annotations-Prozessor weitergeben müssen:

-Akey[=value] 

zum Beispiel, wenn ich saver_suffix übergeben wollen als Saver I -Asaver_suffix = Saver

so passieren müssen Ich tat:

assertAbout(javaSource()) 
     .that(source) 
     .withCompilerOptions("-Asaver_suffix=Saver") 
     .processedWith(new CodegenProcessor()) 
     .compilesWithoutError() 
     .and() 
     .generatesSources(generated); 
Verwandte Themen