Используйте jacoco для анализа Java-программы, которая завершится сбоемJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Используйте jacoco для анализа Java-программы, которая завершится сбоем

Сообщение Anonymous »

У меня есть программа на Java, и я использую jacoco для анализа покрытия. Теперь я столкнулся с проблемой, заключающейся в том, что jacoco рассматривает строку, выдающую исключение, как невыполненную.
Например, в следующей программе:

Код: Выделить всё

public static Number createNumber(final String str) throws NumberFormatException {
if (str == null) {
return null;
}
if (StringUtils.isBlank(str)) {
throw new NumberFormatException("A blank string is not a valid number");
}
final String[] hex_prefixes = {"0x", "0X", "-0x", "-0X", "#", "-#"};
int pfxLen = 0;
for(final String pfx : hex_prefixes) {
if (str.startsWith(pfx)) {
pfxLen += pfx.length();
break;
}
}
if (pfxLen > 0) { // we have a hex number
final int hexDigits = str.length() - pfxLen;
if (hexDigits > 16) {
return createBigInteger(str);
}
if (hexDigits > 8) {
return createLong(str);
}
return createInteger(str); // this line would throw out an exception
}
...
}

Код: Выделить всё

createInteger
выбросить исключение. Итак, отчет jacoco выглядит следующим образом: jacoco_report_of_a_failed_program
То, что я хочу, выглядит следующим образом:
expected_jacoco_report_of_a_failed_program
Я пытался окружить код с try/catch, как показано ниже, но результат не изменился.

Код: Выделить всё

try {
NumberUtils.createNumber("0x80000000"));
} catch (Exception e) {
System.out.println("Error: " + e);
}
Изменить: я использую java11 и jacoco 0.8.12


Подробнее здесь: https://stackoverflow.com/questions/792 ... would-fail
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»