【发布时间】:2013-02-26 17:27:58
【问题描述】:
我正在使用 emma 来记录代码覆盖率。我对线路覆盖率(或线路百分比)特别感兴趣 我们计划通过自动化来增加源代码的线路覆盖率。我们首先手动执行场景,然后使用 emma 检查 line% 是否增加。如果有,我们继续并自动化该功能。我被一个特定的 IF-ELSE 块卡住了,当我手动运行场景时,我看到了想要的结果。但是 emma 并没有将这条线记录为所涵盖的内容。下面是示例代码
if (a == null)
{
final class1 c1 = new class1();
if (c1.isSE())
{
c1.sendRedirect(req, res, "error.html");
}
else
{
c1.sendRedirect(req, res, "testpage.html");
}
return;
}
艾玛报告中的前 3 行是绿色的。但是,以下几行在 emma 报告中是红色的(表示它们没有被覆盖)
c1.sendRedirect(req, res, "error.html");
c1.sendRedirect(req, res, "testpage.html");
return;
但是当我手动执行场景时,我看到了想要的结果(即被重定向到 testpage.html 页面)为什么 emma 没有记录这一行?
注意:我已尝试以下故障排除(http://emma.sourceforge.net/faq.html 中提到)
3.18。 EMMA 开始报告它检测了 0 个类,尽管我给了它一些输入...
您可能会被 EMMA 检测的增量性质绊倒。在调试启用 EMMA 的构建时,请尝试 清理重新编译和/或删除所有检测输出目录 和所有 .em/.ec 文件手动将 EMMA 重置为干净状态。
【问题讨论】:
-
您是如何生成报告的?你使用什么构建工具?
标签: emma