У меня есть код, который использует try с ресурсами, а в jacoco он появляется только наполовину. Все строки исходного кода зеленые, но я получаю маленький желтый символ, говорящий мне, что покрыто только 4 из 8 ветвей.
Мне трудно понять, что такое все ветки, и как писать код, который их охватывает. Три возможных места бросают PipelineException
. Это createStageList()
, processItem()
и подразумеваемый close()
- Не исключение исключений,
- исключение из
createStageList()
- исключение из
processItem()
- сброс исключения из
close()
- выброс исключения из
processItem()
иclose()
Я не могу думать о каких-либо других случаях, но у меня все еще есть только 4 из 8.
Может кто-нибудь объяснить мне, почему это 4 из 8, и все равно ударить все 8 ветвей? Я не умею дешифровать/читать/интерпретировать байтовый код, но, может быть, вы...:) Я уже видел https://github.com/jacoco/jacoco/issues/82, но ни он, ни проблема, с которой он ссылается, очень помогает (кроме того, что это связано с блоками, сгенерированными компилятором)
Хм, точно так же, как я закончил писать, у меня возникла мысль о том, какие случаи могут быть не проверены по тому, о чем я упоминал выше... Я отправлю ответ, если я это исправлю. Я уверен, что этот вопрос и ответ ответят кому-то в любом случае.
EDIT: Нет, я не нашел его. Бросок RuntimeExceptions (не обрабатывается блоком catch) больше не распространяется на ветки