Java Maven+;Cobertura:无法定位[您的类]。您指定了源目录了吗?
我有一个“MyMath”类,有两个简单的方法:“multi”和“add”。 和只测试多种方法的测试类Java Maven+;Cobertura:无法定位[您的类]。您指定了源目录了吗?,java,maven,cobertura,Java,Maven,Cobertura,我有一个“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, te
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插件生成覆盖率报告
<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>
org.codehaus.mojo
cobertura maven插件
2.6
html
xml
清洁的
检查
朱尼特
朱尼特
4.8.1
测试
并从命令行运行mavenmaven-cobertura:cobertura
它说1个测试运行,Cobertura报告生成成功,生成成功消息。但当我检查target/site/cobertura/index.html时,它说“MyMath”类有100%的行覆盖率(即使没有执行“add”方法)。当我单击“MyMath”链接时,它会显示“找不到math/MyMath.java。您指定了源目录了吗?”。我是Maven和cobertura的新手。请有人指导我正确显示覆盖结果和“无法定位”问题。多谢各位
PS:我将项目结构更改为Maven标准目录布局@drembert advice,它可以作为例外工作。但是,当我单击类名时,仍然存在错误:“找不到main/java/MyMath.java。是否指定了源目录?”在文件夹结构中,我注意到的一点是,您没有遵循标准的Maven项目结构()。例如,MyMath.java应该在src/main/java文件夹中,最好在这个路径后面有额外的文件夹来表示包名。现在覆盖率显示正确的结果。错误消息更改为“找不到main/java/MyMath.java。是否指定了源目录?”。POM文件中是否有maven源插件?@KeerthiRamanathan否我没有。我在谷歌上搜索了一下,发现它生成了源文件的jar存档。我需要添加吗,先生?请添加,先生,并让我知道。