Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / почему JaCoCo не требует offline инструментации ? / 16 сообщений из 16, страница 1 из 1
28.08.2015, 16:38
    #39038689
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
Встретил вот такое описание:


JaCoCo a coverage analysis tool. It runs as a JVM Agent and therefore does not require offline instrumentation.

Объясните плиз почему JaCoCo не требует offline инструментации?
...
Рейтинг: 0 / 0
28.08.2015, 16:48
    #39038701
WGA
WGA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
questionerВстретил вот такое описание:


JaCoCo a coverage analysis tool. It runs as a JVM Agent and therefore does not require offline instrumentation.

Объясните плиз почему JaCoCo не требует offline инструментации?Возможно, он делает инструментирование online, т.е. на лету.
http://habrahabr.ru/post/230239/
...
Рейтинг: 0 / 0
28.08.2015, 16:51
    #39038703
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
questionerJaCoCo a coverage analysis tool. It runs as a JVM Agent and therefore does not require offline instrumentation.
Объясните плиз почему JaCoCo не требует offline инструментации?
Потому что JVM Agent позволяет инструментировать классы на лету.
...
Рейтинг: 0 / 0
28.08.2015, 16:56
    #39038708
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
BlazkowiczПотому что JVM Agent позволяет инструментировать классы на лету.

А на лету и не на лету это как ?
...
Рейтинг: 0 / 0
28.08.2015, 17:17
    #39038724
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
questionerА на лету и не на лету это как ?
Не на лету, это предварительно, до или после компиляции.
На лету, это во время исполнения в JVM.
Основные способы реализации подобного АОП
1) Кодогенераторы\Прекомпиляторы - пишем специальные инструкции, прекомпилятор их конвертирует в Java код. Дальше компиляция и как обычно.
2) Посткомпиляция - скомпилировали в байт-код, запустили тулзу, которая парсит байт-код и добавляет нужные инструкции.
3) Load time weaving - принципе аналогичен пост-компиляции, но уже почти "налету". Перехватываем чтение байт-кода ClassLoader-ом и подменяем байт-код перед тем как скормить ClassLoader-у
4) JVM Agent Instrumentation - правим код в любой момент на лету, аналогично hot swap в дебаге.
...
Рейтинг: 0 / 0
28.08.2015, 18:18
    #39038782
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
Кстати коллеги. Кто знает родословные продуктов:

- Cobertura
- Emma
- Jacoco

Расскажите. Какой есть форк от какого? Какой в настоящий момент в разработке? Какой в поддержке?
Какой в тренде или какой вы используете на проекте.

Надо освоить в короткий срок а времени как всегда не хватает.
...
Рейтинг: 0 / 0
28.08.2015, 18:25
    #39038787
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
BlazkowiczНе на лету, это предварительно, до или после компиляции.
На лету, это во время исполнения в JVM.
Основные способы реализации подобного АОП
1) Кодогенераторы\Прекомпиляторы - пишем специальные инструкции, прекомпилятор их конвертирует в Java код. Дальше компиляция и как обычно.
2) Посткомпиляция - скомпилировали в байт-код, запустили тулзу, которая парсит байт-код и добавляет нужные инструкции.
3) Load time weaving - принципе аналогичен пост-компиляции, но уже почти "налету". Перехватываем чтение байт-кода ClassLoader-ом и подменяем байт-код перед тем как скормить ClassLoader-у
4) JVM Agent Instrumentation - правим код в любой момент на лету, аналогично hot swap в дебаге.

Спасибо. а, наверное глупый вопрос задам, который надо было задать перед вопросом в сабжекте.

Зачем для определения coverage вообще нужная инструментация?
...
Рейтинг: 0 / 0
28.08.2015, 18:26
    #39038790
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
maytonКстати коллеги. Кто знает родословные продуктов:

- Cobertura
- Emma
- Jacoco

Расскажите. Какой есть форк от какого? Какой в настоящий момент в разработке? Какой в поддержке?
Какой в тренде или какой вы используете на проекте.

Надо освоить в короткий срок а времени как всегда не хватает.

говорят, что jacoco это преемник Emma http://stackoverflow.com/tags/jacoco/info
...
Рейтинг: 0 / 0
28.08.2015, 19:53
    #39038849
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
questionerЗачем для определения coverage вообще нужная инструментация?
Чтобы отслеживать какие методы выполнены.
...
Рейтинг: 0 / 0
28.08.2015, 23:50
    #39038975
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
BlazkowiczquestionerЗачем для определения coverage вообще нужная инструментация?
Чтобы отслеживать какие методы выполнены.
Если очень отдалённо, то после каждой строки кода вставляется какой-то вызов jacoco по которому анализируется была ли вызвана строка кода?
...
Рейтинг: 0 / 0
29.08.2015, 12:31
    #39039107
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
questionerBlazkowiczпропущено...

Чтобы отслеживать какие методы выполнены.
Если очень отдалённо, то после каждой строки кода вставляется какой-то вызов jacoco по которому анализируется была ли вызвана строка кода?

Не после каждой. В основном в конце-начале блока, в if else и тд. в эксепшенах тож.
...
Рейтинг: 0 / 0
29.08.2015, 16:25
    #39039156
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
забыл ник,

Окей. главное, что в общих чертах механизм я понял.

Теперь хочу понять чуть больше)

Получается, что jacoco запускает какой-нить runner тестов и анализирует(инструментирует) все классы(видимо все не тестовые классы), которые лоадятся класслоадером.

Но мы знаем, что runner для powermock тоже инструментирует код. Видимо с дефолтными настройками jacoco просто игнорит тесты, которые надо запускать powermockRunner-ом.

на stackoverflow есть вот такой вот совет например:

http://stackoverflow.com/questions/23983740/unable-to-get-jacoco-to-work-with-powermockito-using-offline-instrumentation


Но он на самом деле не работает.

Хотелось бы понять в чем суть проблемы для начала.
...
Рейтинг: 0 / 0
29.08.2015, 16:34
    #39039160
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
Blazkowicz,

гуглинг этого вопроса наводит на то, что надо включить offline инструментацию, а не на лету как по умолчанию.

Хочется понять почему это поможет.
...
Рейтинг: 0 / 0
29.08.2015, 16:48
    #39039162
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
http://www.eclemma.org/jacoco/trunk/doc/offline.html One of the main benefits of JaCoCo is the Java agent, which instruments classes on-the-fly. This simplifies code coverage analysis a lot as no pre-instrumentation and classpath tweaking is required. However, there can be situations where on-the-fly instrumentation is not suitable, for example:

Runtime environments that do not support Java agents.
Deployments where it is not possible to configure JVM options.
Bytecode needs to be converted for another VM like the Android Dalvik VM.
Conflicts with other agents that do dynamic classfile transformation.
For such scenarios class files can be pre-instrumented with JaCoCo, for example with the instrument Ant task. At runtime the pre-instrumented classes needs be on the classpath instead of the original classes. In addition jacocoagent.jar must be put on the classpath.


это тот вариант?
...
Рейтинг: 0 / 0
31.08.2015, 15:20
    #39039786
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
up
...
Рейтинг: 0 / 0
02.09.2015, 00:59
    #39041027
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему JaCoCo не требует offline инструментации ?
up
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / почему JaCoCo не требует offline инструментации ? / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]