Я хочу обработать файлы исходного кода openclover во время обычной компиляции, потому что я хочу использовать его в среде сервера.
Идея состоит в том, чтобы запустить наши тесты селена на инструментальном исходном коде и таким образом получить покрытие кода. Также это можно использовать для воспроизведения стандартных сценариев использования и поиска горячих точек для оптимизации.
Для этого в стандартной сборке должны быть установлены файлы исходного кода.
Я создал build.gradle, похожий на показанный здесь .
Отрывок:
sourceSets {
clover {
java {
srcDir "$buildDir/sources-instr"
}
}
}
task cloverInstr() {
inputs.files sourceSets.main.allJava
outputs.dir "$buildDir/sources-instr"
doFirst {
[...]
com.atlassian.clover.CloverInstr.mainImpl(args)
}
}
cloverClasses.dependsOn cloverInstr
test {
def cloverClasspath = configurations.testRuntime + configurations.cloverRuntime + sourceSets.test.output + sourceSets.clover.output
classpath = cloverClasspath
}
Это изменяет тестовую задачу, чтобы использовать классы из исходного набора клевера вместо классов из основного исходного набора. Однако я хотел бы предварительно обработать классы в основном исходном наборе.
Итак, моя идея: main: instrument -> compile -> jar
, в то время как показанное решение использует два набора источников:
main: compile -> jar
clover: instrument -> compile -> test
Как лучше всего обработать исходные файлы клевером и передать их в компиляцию? В идеале у меня даже был бы переключатель, который включает или отключает контрольно-измерительные приборы.