Java EclEmma无法将引发异常的方法计数为已覆盖
我没有达到100%的代码涵盖,并希望。除非我看到100%绿色,否则我想知道我忘了测试什么,去打猎只是为了发现基于工具的愚蠢的事情,而不是我的测试让我远离它。后来我忘了,不得不冲洗/重复 由于异常,testThrow中涵盖了所有路径,但它不算作运行 有没有一种方法可以重写它,这样它就被视为覆盖在那难以捉摸的100%绿色上Java EclEmma无法将引发异常的方法计数为已覆盖,java,code-coverage,eclemma,Java,Code Coverage,Eclemma,我没有达到100%的代码涵盖,并希望。除非我看到100%绿色,否则我想知道我忘了测试什么,去打猎只是为了发现基于工具的愚蠢的事情,而不是我的测试让我远离它。后来我忘了,不得不冲洗/重复 由于异常,testThrow中涵盖了所有路径,但它不算作运行 有没有一种方法可以重写它,这样它就被视为覆盖在那难以捉摸的100%绿色上 public class Dummy { public void testThrow() throws Exception { throwExceptio
public class Dummy {
public void testThrow() throws Exception {
throwException(); // This line is red and is seen as not covered.
}
private void throwException() throws Exception {
throw new Exception();
}
}
public class DummyTest() {
@Test
public void testThrow() throws Exception {
new Dummy().testThrow();
}
}
我添加了@Test(预期=Exception.class),但行仍然是红色的
我还尝试:
public void testThrow() throws Exception {
try {
throwException(); // This line is STILL red
}
catch(Exception e) {
throw e; // This line becomes green (as expected)
}
} // This line is now also red
您可以在以下内容中找到相同的内容: 为什么带有预期异常的JUnit4测试用例显示为未涵盖? 带有预期异常的JUnit4测试用例显示为未涵盖 即使他们被处决了。原因是潜在的 JaCoCo代码覆盖率库仅在 执行某些探测。对于标记为 @测试{预期=…}情况并非如此
您是否尝试将
@Test
替换为@Test(预期=Exception.class)
?添加的@Test(预期=Exception.class)可能重复,但仍为红色。另一篇文章是关于testcase是红色的,这是测试代码的一个已知问题,因为工具插入的方式。我承认这一点,并且一般忽略它们。我的问题是被测试的方法(不是单元测试)是红色的。