Протестируйте аргумент apt для процессора аннотаций с помощью 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

Я не уверен, как передать опцию.


person Abdullah    schedule 12.06.2016    source источник


Ответы (1)


В стандартной javac документации я нашел, как параметры передачи в процессор аннотаций:

-Akey[=value] 

например, если я хочу передать saver_suffix как Saver, мне нужно передать -Asaver_suffix=Saver

так я и сделал:

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