我正在为我的android项目编写注释处理器,我使用谷歌编译测试来测试它。
除了能够测试我的注释处理器的apt 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 :(得分:0)
我从标准javac
documentation找到了如何将选项传递给注释处理器:
-Akey[=value]
例如,如果我想将saver_suffix
作为Saver
传递,我需要传递
-Asaver_suffix =包裹
所以我做了:
assertAbout(javaSource())
.that(source)
.withCompilerOptions("-Asaver_suffix=Saver")
.processedWith(new CodegenProcessor())
.compilesWithoutError()
.and()
.generatesSources(generated);