当前位置: 首页 > 面试题库 >

使用EclEmma的Java中的代码覆盖率不扫描预期的异常方法

韦安顺
2023-03-14
问题内容

我正在尝试使用Eclipse和EclEmma在Java中进行代码覆盖。

我的测试使用的是JUnit 4,我有一些类似的测试:

    @Test(expected = IllegalArgumentException.class)
    public void createTime_withInvalidMinuteUnder0_throws(){
    //Arrange
    ...
    //Act
    Something triggering IllegalArgumentException Here       
}

EclEmma说测试失败,因为抛出了IllegalArgumentException。因此,即使它应该抛出某些东西,它也会丢弃我的代码覆盖率指示器。是否有使其看到JUnit预期异常标记的选项?

编辑:我发现,如果您也将throw添加到测试的声明中,则可以正常工作!


问题答案:

不,没有办法让EclEmma注意到该expected子句。他们在这里承认这一事实。

为什么带有预期异常的JUnit4测试用例显示为未涵盖?

具有预期异常的JUnit4测试用例即使已执行,也显示为未涵盖。原因是底层的JaCoCo代码覆盖库仅在执行某些探测时才将代码视为已执行。对于标有@Test{expected=...}此标记的成功测试案例,情况并非如此。

就个人而言,我不会对此太担心。测试用例的覆盖范围是EclEmma告诉您的最不有趣的事情。我始终完全忽略这些指标,而专注于生产代码的覆盖范围。



 类似资料:
  • 我正试图使用Eclipse和EclEmma在java中覆盖我的代码。 我的测试使用JUnit 4,我有一些测试看起来像这样: EclEmma说测试失败是因为抛出了一个IllegalArgumentExc0019。所以它会丢弃我的代码覆盖率指标,即使它应该抛出一些东西。有没有一个选项可以让它看到JUnit期望的异常标签? 编辑:我发现,如果您将抛出添加到测试声明中,它也可以工作!

  • 我不熟悉java、Junit和jacoco。我正在做下面的异常处理。我也在捕获异常类,以防该方法抛出之前未捕获的任何其他异常。 在Junit测试中,尝试如下。当我有运行时的任何异常时,我抛出的总是运行时异常捕获块本身,除非我抛出异常。我可以尝试其他哪个选中的异常,使其进入异常捕获块。因此,我无法获得所需的代码覆盖率。 谢谢你的帮助。

  • 问题内容: 我已经配置了EclEmma,使其无法正常运行我的单元测试。但是,编辑器仍会突出显示未涵盖的测试代码。我不希望单元测试中突出显示,因为它们没有检测到覆盖率。我怎样才能做到这一点? 问题答案: 我做了以下步骤: 转到 “首选项”- >“ Java”->“代码覆盖率”,然后 将 “仅路径条目匹配” 选项设置为 看来效果很好。

  • 我正在使用Mocha测试我的NodeJS应用程序。我不知道如何使用它的代码覆盖功能。我试着谷歌它,但没有找到任何适当的教程。请帮忙。

  • 我正在尝试使用JaCoCo-javaagent传递VM参数来获得代码覆盖率 -Java agent:/test/jaco co/jaco agent . jar = dest file =/test/jaco co/jaco co . exec,includes=com。*,append=true 我能在jacoco中获得一些价值。执行文件,但无法获取覆盖率报告。我怎样才能把jacoco转化成。执

  • 问题内容: 我正在使用Mocha测试我的NodeJS应用程序。我无法弄清楚如何使用其代码覆盖功能。我尝试使用Google搜索,但没有找到任何合适的教程。请帮忙。 问题答案: 您需要一个额外的库来覆盖代码,而伊斯坦布尔的强大和便捷将使您震惊。通过Mocha测试后,请尝试以下操作: 现在,只需将命令nyc放在现有测试命令的前面,例如: