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