私は私のプロジェクトのMavenのPOMでこのように構成されたNetBeansとJaCoCoを使用します。のNetBeans、JacocoとOptional.orElseThrow()
public String showName(Optional<String> maybeName) {
return maybeName.orElseThrow(() -> new RuntimeException("Missing name"));
}
そしてだけ、このテスト:このコードの場合
<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>
:
@Test
public void testShowName() {
String actual = foo.showName(Optional.of("John"));
assertEquals("John", actual);
}
... NetBeansコードカバレッジレポートは100%カバレッジを示します。 maybeName == Optional.empty()
が例外をスローした場合を実行していないので、これは正しくありません。
EclipseでEclEmmaを使用すると、部分的なカバレッジが予想通りに表示されます。
JaCoCoに必要な設定がありますか?