簡體   English   中英

如何獲得Java中各個測試的代碼覆蓋率

[英]How could I get code coverage for individual tests in Java

我有一個測試類,其中包含大量測試用例。

我想衡量課程中單個測試用例的覆蓋范圍。

有什么辦法可以得到一份映射測試用例和覆蓋范圍的報告。

我們的SD Java測試覆蓋率工具可以為您提供這些數據。

該工具將一個帶有方法的特殊類TCV添加到被測程序中:

    TCV.reset();  // resets the test coverage vector
    TCV.dump(); // writes vector to file
    TCV.setBaseName(String); // record vector file name prefix

如果應用程序調用轉儲函數,則將測試覆蓋向量轉儲到具有當前時間戳和提供的BaseName的文件中。

您可以使用它們通過稍微修改測試執行框架來獲取特定於測試的向量。 在調用第N個測試用例的任何地方,添加對dump的調用:

    TCV.reset(); // marks everything as "not executed"
    tests.nthTestCase();
    TCV.setBaseName("nthTestCase");
    TCV.dump();

這將產生一個帶有時間戳的向量,該向量僅覆蓋nTestCase執行的代碼。

該工具的UI組件可以找到並顯示各個測試用例的結果。 UI組件還可以將所有這些單獨的測試用例覆蓋結果組合為一個整體測試覆蓋結果,以提供傳統的“所有測試用例執行的所有操作”結果。 或者,您可以比較測試用例的覆蓋范圍結果,以查看哪些測試用例覆蓋相同的代碼,以幫助消除多余的測試用例,等等。

UI組件還可以生成測試所涵蓋的行的報告。 可以編寫腳本,因此可以針對單獨收集的所有測試覆蓋率矢量生成行覆蓋報告。

您是否嘗試過三葉草三葉草

我知道它不是免費的,但它可以滿足您的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM