我花了几个小时来找出为什么我的一个junit测试在本地运行,而不是在github工作流上运行。失败的测试检查一些文件是否存在,以执行一些配置工作。我正在使用maven资源插件将这些文件复制到目标目录中的一个文件夹中。这是我的pom插件设置。xml:
<plugin>
<!-- move some test resources to target -->
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resource-one</id>
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/test-dir</outputDirectory>
<resources>
<resource>
<directory>${basedir}/test-files</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
文件按预期复制,mvn clean test按预期运行,但不在github工作流中运行。
这是我的工作流定义:
name: Sonar Scan
on:
push:
branches:
- develop
- feature*
- master
pull_request:
types: [opened, synchronize, reopened]
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2.3.1
with:
distribution: 'adopt'
java-version: '11'
- name: Cache SonarCloud packages
uses: actions/cache@v1
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Build and analyze
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=abckey
我想这是一个典型的RTFM问题,但我没有发现任何东西。
有什么提示吗?
更新时间:
只是testet,mvn干净测试
在github工作流程上也失败了!
如果将测试资源文件放置在src/test/resources/sub/dir中,则无需将其明确复制到
target/dir中,默认情况下,Maven resources插件绑定到流程资源和流程测试资源阶段,因此无需在POM中进行任何声明:
资源插件处理将项目资源复制到输出目录的操作。有两种不同的资源:主资源和测试资源。区别在于,主资源是与主源代码关联的资源,而测试资源与测试源代码关联。
因此,这允许分离主要源代码及其单元测试的资源。
这并不是你的问题的原因,但无论如何,我会从POM中删除声明。
我正在尝试运行我的repo上列出的基本maven java操作:https://github.com/dhowe/rita2/ mvn-B包——文件pom。xmlcmd在本地repo中正确运行,但测试在github操作中失败,并出现以下错误(此处有完整日志): 因此,很明显,通过github操作运行时找不到字典资源。但是为什么maven会在本地找到文件(src/main/java/rita\u d
我在使用JUnit5进行maven测试时遇到了一个奇怪的问题。 我用junit工具为每个方法创建了测试套件,每个测试都是这样开始的。 和要测试的类
在工作中,我们为其中一个应用程序提供了一个自动化套件,该套件将在每次提交到master/deploy到prod时运行,很长一段时间以来,我们一直在努力使其足够可靠。 测试在Jenkins中运行,使用Selenium webDriverChromexvfb作为显示服务器。我们知道测试是有效的,因为如果我们在笔记本电脑上本地运行它们(我和两个朋友尝试过),它们每次都运行完美,但在詹金斯几乎每次都失败。
在使用Oracle DB和JDK 17升级到Spring Boot 2.5.7时,我在Maven上运行测试时出现了这个奇怪的错误。 错误是:[ERROR]无法执行目标org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test(default-test)on project kkd: Exection default-test of目标org
问题内容: 我有一个包含多个模块的项目。当所有测试通过时,Maven测试将全部运行。 当第一个模块中的测试失败时,maven将不会继续进行下一个项目。我在Surefire设置中将testFailureIgnore设置为true,但这无济于事。 我如何使Maven运行所有测试? 问题答案: 我刚刚找到了“ -fae”参数,该参数使Maven运行所有测试并且不会因失败而停止。
恐怕我是个新手,有一些新手问题。 一段时间以来,我一直将python用于简单的脚本和自动化,但我正在挑战自己,通过为GitHub上的一些开源项目做出贡献来深入研究。 在这样一个公共环境中犯愚蠢的错误很有趣,但也很伤脑筋。 有时我的一项更改会导致错误,该错误会被提交PR时GitHub项目运行的自动测试之一捕获。如果可能,我想在提交PR之前自己捕获这些。有没有办法让我在自己的机器上本地运行相同的构建测