我有“MyMath”类,有两个简单的方法:“multi”和“add”。
和测试类只会测试多种方法。
public class MainTest {
@Test
public void testMultiply() {
MyMath tester = new MyMath();
// check if multiply(10,5) returns 50
assertEquals("10 x 5 must be 50", 50, tester.multi(10, 5));
}
}
我的项目结构是:
JenkinsTest/
src/
main/Main.java
math/MyMath.java
test/MathTest.java
pom.xml 位于项目根目录。
我正在尝试使用 cobertura-maven-plugin 生成覆盖率报告。
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.6</version>
<configuration>
<formats>
<format>html</format>
<format>xml</format>
</formats>
</configuration>
<executions>
<execution>
<goals>
<goal>clean</goal>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
并从命令行运行mavenmaven cobertura:cobertura
它显示 1 测试已运行,Cobertura 报告生成成功,构建成功消息。但是当我去检查 target/site/cobertura/index.html 时,它说“MyMath”类具有 100% 的行覆盖率(即使“add”方法未执行)。当我单击“MyMath”链接时,它显示“无法找到 math/MyMath.java。您指定了源目录吗?”。我是 Maven 和 cobertura 的新手。有人可以指导我正确显示覆盖结果和“无法定位”问题吗?谢谢。
PS:按照 @drembert 的建议,我将项目结构更改为 Maven 标准目录布局,并且它的工作方式与例外情况相同。但是当我点击类名时,出现错误:“无法找到主/java/MyMath.java。您指定了源目录吗?”仍然存在。