我有一个小的Maven应用程序,它使用JaCoCo进行测试覆盖报告。我不断得到以下错误:
由于缺少执行数据文件,正在跳过JaCoCo执行
这是我的POM。xml文件。我自己删除了项目元素。
<modelVersion>4.0.0</modelVersion>
<groupId>de.mathema.www</groupId>
<artifactId>jacoco_sample_app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>jacoco_sample_app</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.6.201602180812</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
这是我的主类,它位于src /主/java
结构下:
public class Punkt {
private Double x;
private Double y;
public Punkt(Double x,Double y) {
this.x = x;
this.y = y;
}
public Punkt(Punkt zweiterPunkt) {
this.x = zweiterPunkt.x;
this.y = zweiterPunkt.y;
}
public Double getX() {
return x;
}
public void setX(Double x) {
this.x = x;
}
public Double getY() {
return y;
}
public void setY(Double y) {
this.y = y;
}
public boolean punkteVergleichen(Punkt zweiterPunkt) {
return this.getX().equals(zweiterPunkt.getX()) &&
this.getY().equals(zweiterPunkt.getY());
}
public String toString() {
return "("+this.x+","+this.y+")";
}
}
这是带有单元测试的类,它位于src /测试/ java
结构下:
public class PunktUnitTests {
@Test
public void PunkteVergleichen() throws Exception {
//a(10.0, 20.0)
Punkt a = new Punkt(10.0,20.0);
//b(30.0,40.0)
Punkt b = new Punkt(30.0,40.0);
//Der Fall X1!=X2 und Y1!=Y2
//a(10.0,20.0) und b(30.0,40.0) sind unterschiedlich
assertFalse(a.punkteVergleichen(b));
//Der Fall X1 == X2 && Y1 == Y2
//a(10.0,20.0) und c(10.0,20.0) sind gleich
Punkt c = new Punkt(a);
assertTrue(a.punkteVergleichen(a));
//Der Fall X1 == X2 && Y1 != Y2
//a(10.0,20.0) und c(10.0,90.0) sind unterschiedlich
c.setX(10.0);c.setY(90.0);
assertFalse(a.punkteVergleichen(c));
}
}
我该如何解决这个问题?
尽管消息可能有点误导,但JaCoCo Maven插件会在没有运行测试时发出此警告。这是您的问题:默认情况下,Maven Surefire插件执行遵循特定命名约定的测试,即:
但您的测试名为PunktUnitTests
,后面有一个“s”,它会导致它无法执行。因此,会发生以下情况:Surefire插件未运行任何测试,因此从未使用JaCoCo代理,因此,不会创建执行数据文件。
这里的简单解决方案是根据Surefire插件的约定重命名您的测试,即< code > punkunittest 。
另一种解决方案是配置插件以执行以“s”结尾的测试:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<includes>
<include>**/*Tests.java</include>
</includes>
</configuration>
</plugin>
请注意,如果您想防止将来出现这样的错误,您可以通过将< code>failIfNoTests参数设置为< code>true来将Surefire插件配置为在没有测试运行的情况下失败。
问题内容: 我们有一个Maven多模块项目,其中包含一个父级(HelloWorld)和不同的子级(HelloWorldServices和HelloWorldPresentation),并使用Jenkins进行构建。 运行成功的测试后的错误是 前面的线说 这是我定义父pom JaCoCo插件的方式: 我没有明确提到过surefire。我还尝试了到处都可以找到的将argLine放入配置中的结果,但是所
我们有一个Maven多模块项目,由父级(HelloWorld)和不同的子级(HelloWorldServices和HelloWorldPresentation)组成,并使用Jenkins进行构建。 运行成功测试后的错误是
我正在使用 Maven 3.8.3、JUnit 5.4.2 和 Jacoco 0.8.2,并且我正在尝试创建测试覆盖率报告。 我有一个只有单元测试的项目,但我无法运行报告,我反复收到错误:由于运行时缺少执行数据文件而跳过JaCoCo执行: 以下是我的pom的配置方式: 任何想法,我错过了什么配置?
我得到了 我错过了什么?
问题内容: 我只有一行用python编写的代码,并带有pyinstaller和option 。exe文件为4577 kB,几乎是5Mb。如何减小其大小或排除某些自动捆绑的图书馆? 问题答案: 您使用pyinstaller创建的.exe文件包括python解释器和脚本中包含的所有模块。也许您正在使用的模块本身都有一个很大的库。但是,您可以尝试使用 py2exe, 但它可能不适用于所有项目。另一种缩小
我也看了几个Youtube视频,但似乎没有一个能解决这个问题。 为什么-属性没有正确地嵌入到jar的清单中,如何修复它?