Я использую NetBeans и JaCoCo, сконфигурированный таким образом, в моем проекте Maven POM:NetBeans, Jacoco и Optional.orElseThrow()
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.7.201606060606</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
Для этого кода:
public String showName(Optional<String> maybeName) {
return maybeName.orElseThrow(() -> new RuntimeException("Missing name"));
}
И только этот тест :
@Test
public void testShowName() {
String actual = foo.showName(Optional.of("John"));
assertEquals("John", actual);
}
... тогда отчет о покрытии кода NetBeans показывает покрытие 100%. Это неверно, так как я не использовал случай, когда maybeName == Optional.empty()
и исключение выбрано.
Использование EclEmma в Eclipse, я вижу частичное покрытие, как и ожидалось.
Есть ли какая-то дополнительная конфигурация, которую мне нужно дать JaCoCo?