現在用艾瑪記錄代碼覆蓋。對線路覆蓋率(或線路%)特別感興趣我們計劃通過「自動化」來增加源代碼的線路覆蓋率。我們首先手動執行場景,然後使用emma檢查行%是否增加。如果有,我們繼續並自動化該功能。我堅持使用特定的IF-ELSE塊,當我手動運行場景時,看到了期望的結果。但艾瑪並沒有將這條線記錄下來。以下是示例代碼艾瑪沒有記錄的行覆蓋,即使它執行
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行是綠色的。但是,下面的下面的線是紅色的艾瑪報告(這意味着他們沒有被覆蓋)
c1.sendRedirect(req, res, "error.html");
c1.sendRedirect(req, res, "testpage.html");
return;
但是,當我手動執行的情況下,我看到期望的結果(即我重定向到testpage.html頁)爲什麼艾瑪不會將此行記錄爲已涵蓋?
注:我曾嘗試下面的下面的故障處理(在http://emma.sourceforge.net/faq.html提到)
3.18。 EMMA開始報告稱,其儀表0類,即使我給它一些輸入...
你可能會得到通過EMMA儀器的增量性質絆倒。當調試啓用EMMA建造,嘗試無論是 乾淨的編譯和/或刪除所有儀器的輸出目錄 並用手所有.EM/ .ec文件EMMA重置爲乾淨的狀態。
你是如何生成報告的?你使用什麼構建工具? – gsndev 2013-08-07 21:52:32