Проверьте подходящие аргументы для процессора аннотаций с помощью Google Compile-Testing.

Я пишу процессор аннотаций для своего проекта Android и тестирую его с помощью Google Compile-Testing.

Все работает нормально, за исключением того, что я могу проверить аргумент 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 ответ

Решение

Я нашел из стандарта javac Документация о том, как передать опции процессору аннотаций:

-Akey[=value] 

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

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

 assertAbout(javaSource())
        .that(source)
        .withCompilerOptions("-Asaver_suffix=Saver")
        .processedWith(new CodegenProcessor())
        .compilesWithoutError()
        .and()
        .generatesSources(generated);
Другие вопросы по тегам