2013-03-26 5 views
0

Здравствуйте, Gradle gurus! Я ищу ваш могучий опыт и знания :)Gradle plugin, как подключить агент Jacoco к jvm

У меня есть плагин Gradle, который перехватывает агент Jacoco на jvm. В настоящее время мой код выглядит следующим образом:

Task t = project.allTasks.getByPath(project.getName+":"+"test"); 
t.jvmArgs = ["-javaagent:"+jacocoAgentJar+"=destfile=" + coverageResultFile.getCanonicalPath()]; 

Это работает хорошо, но так как динамические свойства осуждаются я хочу как-то избавиться от них. Однако ... изменение кода на t.ext.jvmArgs = ["-javaagent:"+jacocoAgentJar+"=destfile=" + coverageResultFile.getCanonicalPath()]; не работает.

Не мог бы кто-нибудь объяснить мне, как я должен подключить агента Jacoco к jvm, используя эту динамическую собственность?

Благодаря

+0

попробуйте использовать 'tasks.withType (Test) {..}', чтобы его не было динамическим свойством в общем типе задач. –

ответ

1

Если вы получаете «динамические свойства» предупреждение здесь, там, вероятно, что-то не так с вашим кодом, и это не только вопрос стиля. Во-первых, использование getAllTasks (которое, кстати, принимает логический параметр) здесь неуместно. Вместо этого вы должны использовать project.tasks.getByName("test"), который может быть сокращен до project.tasks["test"] или даже project.test. Или, если вы хотите поймать все тестовые задачи, project.tasks.withType(Test).

1

можно настроить непосредственно тестовое задание в файле сборки добавив закрытия конфигурации, как это:

test{ 

    jvmArgs "javaagent:"+jacocoAgentJar+"=destfile=" + overageResultFile.getCanonicalPath()" 

}