2016-06-12 58 views
0

我正在爲我的android項目編寫註釋處理器,並使用谷歌編譯測試來測試它。用於谷歌編譯測試的註釋處理器的測試適配器參數

這一切工作正常,但我能夠測試到我的註釋處理器plugnin參數。

我的註釋處理器有這個選項,我想測試:

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

我似乎並沒有讓我如何可以通過這個選項來編譯測試庫來測試它。我試圖withCompilerOptions如下:

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

,但它給了我以下錯誤:

java.lang.IllegalArgumentException: invalid flag: saver_suffix 

我不知道怎麼傳的選項。

回答

0

我從標準javacdocumentation發現如何將選項傳遞給批註處理器:

-Akey[=value] 

例如,如果我想通過saver_suffix作爲Saver我需要通過 -Asaver_suffix =節電器

所以我做了:

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