我有两个简单方法的“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>
从命令行maven cobertura:cobertura
它说1测试运行,Cobertura报告生成成功,构建成功消息。但是当我去检查target / site / cobertura / index.html时,它说“MyMath”类有100%的行覆盖率(尽管“add”方法没有被执行)。当我点击“MyMath”链接时,它显示“无法找到math / MyMath.java。您是否指定了源目录?”。我是Maven和cobertura的新手。请有人指导我正确显示覆盖结果和“无法找到”问题。谢谢。
PS:我将项目结构更改为Maven标准目录布局为@drembert建议,它作为例外工作。但是当我点击类名时,错误:“无法找到 main / java / MyMath.java 。你有没有指定源目录?”还在那里。