使用谷歌编译测试测试注释处理器的apt参数

时间:2016-06-12 09:05:05

标签: android gradle annotation-processing

我正在为我的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

我不知道如何通过该选项。

1 个答案:

答案 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);