При попытке запуска охвата, или запустить Maven сборки с помощью Эмме: Эмме я получаю следующее:За исключением синтетических классов в Эмме в STS
java.lang.IllegalStateException: Не удалось получить доступ к методу: Не могу установить . статический финал [Z поле packageName.ClassName $ jacocoData в [Z
Я искал вокруг онлайн, и я нашел следующее на сайте EclEmma:
Мой код использует отражение. Почему это происходит, когда я выполняю его с помощью JaCoCo?
Для сбора данных выполнения JaCoCo аппаратур классов испытываемого , который добавляет два члена класса: частное статическое поле $ jacocoData и частный статический метод $ jacocoInit(). Оба элемента обозначены как синтетические.
Пожалуйста, измените свой код, чтобы игнорировать синтетические элементы. Это хорошая практика в любом случае, так как Java-компилятор создает синтетические элементы в определенной ситуации.
Но я не могу найти документацию в Интернете о том, как фактически игнорировать синтетические элементы с Emma.
В STS я смотрю под Preferences/Java/Code Coverage, и я вижу поле Excludes для исключения исключений (и я знаю, что я мог бы также исключить из моего POM).
Мне просто интересно, что нужно для этого, чтобы исключить все синтетические классы.
Благодаря
«Хакерный» способ игнорировать '$ jacocoData' состоит в том, чтобы знать, что он всегда добавляется в конце списка членов класса. Хотя, мне было бы очень интересно узнать, как исключить любой синтетический член класса Java/Scala. –
Любая удача в этом? Я столкнулся с той же проблемой, и теперь я ищу, как изменить ваш код, чтобы игнорировать синтетические члены. – topr