[英]Travis CI build failing with JUnit 5
I'm currently working on a Java project using Maven, GitHub, CodeCov and Travis and I have a problem with my tests.我目前正在使用 Maven、GitHub、CodeCov 和 Travis 进行 Java 项目,但我的测试有问题。 I'm using JUnit 5 for the tests and here's the pom.xml fragment of the dependencies:
我使用 JUnit 5 进行测试,这里是依赖项的 pom.xml 片段:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.4.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.4.2</version>
<scope>test</scope>
</dependency>
I don't create any tests yet, I only have a empty test class with a method that does nothing but has the @Test tag.我还没有创建任何测试,我只有一个空的测试类,它的方法除了有 @Test 标签之外什么都不做。 Here's the class:
这是课程:
package test.java.test;
import org.junit.jupiter.api.Test;
public class MainTests {
@Test
public void sampleTest() {
// TODO
}
}
And here's my travis.yml file on my project:这是我项目中的 travis.yml 文件:
language: java
after_success:
- bash <(curl -s https://codecov.io/bash)
script:
- "mvn test"
Running "mvn test" in my local machine doesn't provide any errors but my Travis build is failing because of this:在我的本地机器上运行“mvn test”不会出现任何错误,但是我的 Travis 构建失败了:
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/travis/build/M1RZ4/TFG/src/test/java/test/MainTests.java:[3,29] package org.junit.jupiter.api does not exist
[ERROR] /home/travis/build/M1RZ4/TFG/src/test/java/test/MainTests.java:[7,10] cannot find symbol
symbol: class Test
location: class test.java.test.MainTests
I'm not used to work with Travis so I don't know what I'm doing wrong.我不习惯和 Travis 一起工作,所以我不知道我做错了什么。
EDIT: Added full pom.xml file编辑:添加完整的 pom.xml 文件
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>TFG</groupId>
<artifactId>TFG</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<formats>
<format>html</format>
<format>xml</format>
</formats>
<check />
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.0.19</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.0.6</version>
</dependency>
<dependency>
<groupId>com.gestor</groupId>
<artifactId>GestorProblema1maquina</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/GestorProblema1maquina.jar</systemPath>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.4.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.4.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.0</version>
</dependency>
</dependencies>
</project>
I believe that the culprit is the mess in packaging.我认为罪魁祸首是包装混乱。 As specified in: http://maven.apache.org/ref/3.3.3//maven-model/maven.html#class_build the build section of the pom.xml has a
sourceDirectory
entry to specify the source folder and testSourceDirectory
to specify test source folder.如在: http :
testSourceDirectory
指定的,pom.xml 的构建部分有一个sourceDirectory
条目来指定源文件夹和testSourceDirectory
指定测试源文件夹。
The output of the compilation shows that your tests are placed in the source folder, hence they are compiled with dependencies with compile scope, not test scope.编译的输出显示您的测试放置在源文件夹中,因此它们是使用编译范围的依赖项编译的,而不是测试范围。
To fix:修理:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.