gpt4 book ai didi

java - 带有 Maven 测试的 GitHub CI 未运行任何测试

转载 作者:行者123 更新时间:2023-12-05 06:48:07 25 4
gpt4 key购买 nike

我绝对是 CI 和 GitHub 的新手,尤其是两者的结合。我有一个小组项目,我们使用 maven 进行构建,使用 junit 5 进行测试的 maven surefire。我们有几个测试在本地运行得很好,但是我们的 maven.yml 没有配置 repo 不运行这些测试。这是 .yml 的当前迭代(所有当前注释的行都是我们测试过的):

name: Java CI with Maven
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build with Maven
#run: mvn -B package --file pom.xml
run: mvn --batch-mode --update-snapshots verify
- run: npm ci
- run: npm run build --if-present
- run: npm test
#- name: Test with Maven
#run: mvn -Dtest="test/*Test" test
#run: mvn '-Dtest=test.*Test' test

这是我们当前的 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>groupId</groupId>
<artifactId>Izsakazsivany</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>15</maven.compiler.source>
<maven.compiler.target>15</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.7.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>maven-unit-test</finalName>
<plugins>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>

</plugins>
</build>
</project>

使用这个和来自 Intellij 的 maven 集成的默认“测试”生命周期,我们所有的测试都在本地运行。 (据我所知,intellij maven 测试生命周期使用以下行进行测试:测试 -f pom.xml)。然而,当我们使用我们的 CI 配置在 GitHub 上尝试这个时,它说在默认测试中没有找到测试:

[INFO] --- maven-surefire-plugin:2.22.0:test (default-test) @ Izsakazsivany ---
[INFO] No tests to run.

(旁注:izsakazsivany 是我们的项目名称旁注2:上面两行之间大约有100行下载)

是什么导致本地版本和 GitHub 上的版本不一致,为什么在运行相同的 mvn 命令时没有看到测试?

编辑:这可能是一个重要的规范,我们的测试在一个名为 test 的包中,并且在用于测试的单独类的特定包中。示例:git/src/main/test/entity

最佳答案

问题最终得到解决,问题出在错误的项目结构上,我们需要在 pom.xml 中添加一行,详细说明在哪里可以找到测试。 <testSourceDirectory>src/main/test/java/com/team</testSourceDirectory>

编辑:这个问题很可能与糟糕的项目结构有关,因为我们的测试文件夹太深了。通过扩展,这也意味着我们的包名称也必须重做。建议:确保您的项目结构在一开始就是正确的,以避免出现此类问题。

关于java - 带有 Maven 测试的 GitHub CI 未运行任何测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66907650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com