我正在研究Java项目,并且对实现测试用例优先级排序算法感兴趣。更具体地说,是“附加策略”。 这是基于覆盖率的算法。这意味着将根据测试用例覆盖的代码优先级。 我遇到的麻烦是找到一种工具,该工具可以为我提供各个测试用例的覆盖范围,而不是项目覆盖范围。 我看过JaCoCo和OpenClover,这些工具提供了一些信息,但是似乎没有办法将给定的测试与项目代码中的语句和/或方法联系起来。
为澄清起见,请查看下面的XML。
<project name="myProj">
<metrics methods="2" classes="2" statements="15" packages="1" />
<file path="F:\myProj\src\java\Main.java" name="Main.java">
<metrics methods="2" classes="2" statements="15" packages="1" />
</file>
</project>
<file path="F:\myProj\src\test\java\Test.java" name="Test.java">
<class name="Test">
<metrics methods="2" testruns="2" statements="6" coveredmethods="2" coveredstatements="9" testpasses="2"/>
<method name ="palindromTest">
<metrics statements="3" coveredmethods="1" coveredstatements="4" passed="true" file="StringManipulation.java"/>
<statement line="1"/>
<statement line="2"/>
<statement line="3"/>
<statement line="4"/>
</method>
<method name ="stringReverseTest">
<metrics statements="3" coveredmethods="1" coveredstatements="5" passed="true" file="StringManipulation.java"/>
<statement line="3"/>
<statement line="4"/>
<statement line="5"/>
<statement line="6"/>
<statement line="7"/>
</method>
</class>
</file>
这是我想要的例子。 由此可见,方法palindromTest包含4条语句。我知道stringReverseTest也涵盖了其中的两个语句。 我还可以看到palindromTest在源代码中包含4/15条语句,使其语句覆盖率达到26%或13%的唯一覆盖率。这是我需要的信息类型。但是,找到能够做到这一点的工具似乎是不可能的。