使用 google 编译测试测试注释处理器的适当参数
Test apt argument for annotation processor with google compile-testing
我正在为我的 android 项目编写注释处理器,我使用 google 编译测试对其进行测试。
一切正常,除了我能够测试注释处理器的 apt 插件参数。
我的注解处理器有这个选项我想测试:
@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
我不知道如何通过选项。
我从标准 javac
documentation 中找到了如何将选项传递给注释处理器:
-Akey[=value]
例如,如果我想将 saver_suffix
传递为 Saver
,我需要传递
-Asaver_suffix=节省
所以我做到了:
assertAbout(javaSource())
.that(source)
.withCompilerOptions("-Asaver_suffix=Saver")
.processedWith(new CodegenProcessor())
.compilesWithoutError()
.and()
.generatesSources(generated);
我正在为我的 android 项目编写注释处理器,我使用 google 编译测试对其进行测试。
一切正常,除了我能够测试注释处理器的 apt 插件参数。
我的注解处理器有这个选项我想测试:
@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
我不知道如何通过选项。
我从标准 javac
documentation 中找到了如何将选项传递给注释处理器:
-Akey[=value]
例如,如果我想将 saver_suffix
传递为 Saver
,我需要传递
-Asaver_suffix=节省
所以我做到了:
assertAbout(javaSource())
.that(source)
.withCompilerOptions("-Asaver_suffix=Saver")
.processedWith(new CodegenProcessor())
.compilesWithoutError()
.and()
.generatesSources(generated);