我有一个使用 Maven (Java) 构建的测试项目。我可以手动从 IntelliJ 执行测试,也可以从命令行通过编写mvn test
.
我将项目放在 CircleCI 上,它生成了一个 yml 文件。它也能够在管道上执行测试,一开始没有任何问题
然后我做了一些愚蠢的事情。最初的测试是在这个根目录中:src/main/java/api/test
. 但我决定将测试类移动到这个根:src/test/java/api
.
我做这个更改是因为src/test/java
实际测试文件夹是在您创建 Maven 项目时自动创建的。(另一个测试文件夹是我手动创建的,所以我认为这不是最佳实践,因此决定将测试类移动到src/test/java
. 基本上我所做的是,我创建了一个名为api
under的包src/test/java
并将测试类移动到这个包。之后我删除了 src/main/java/api/test 因为它现在是空的。
在此更改之后,我没有发现任何问题。我仍然可以从 IntelliJ 或通过mvn test
命令从命令行运行测试。但是在我提交更改后,我只是检查了管道并看到了这个:
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.793
我的项目仍在 CircleCI 上构建和测试,但它显然不执行测试类。我不知道为什么会这样。我检查了 yml 文件,没有任何与路径相关的内容,并且它之前工作过。这是我的 yml 文件:
# Use the latest 2.1 version of CircleCI pipeline process engine.
# See: https://circleci.com/docs/2.0/configuration-reference
version: 2.1
jobs:
# Below is the definition of your job to build and test your app, you can rename and customize it as you want.
build-and-test:
# These next lines define a Docker executor: https://circleci.com/docs/2.0/executor-types/
# You can specify an image from Dockerhub or use one of our Convenience Images from CircleCI's Developer Hub.
# Be sure to update the Docker image tag below to openjdk version of your application.
# A list of available CircleCI Docker Convenience Images are available here: https://circleci.com/developer/images/image/cimg/openjdk
docker:
- image: cimg/openjdk:11.0
steps:
# Checkout the code as the first step.
- checkout
# Use mvn clean and package as the standard maven build phase
- run:
name: Build
command: mvn -B -DskipTests clean package
# Then run your tests!
- run:
name: Test
command: mvn test
workflows:
# Below is the definition of your workflow.
# Inside the workflow, you provide the jobs you want to run, e.g this workflow runs the build-and-test job above.
# CircleCI will run this workflow on every commit.
# For more details on extending your workflow, see the configuration docs: https://circleci.com/docs/2.0/configuration-reference/#workflows
sample:
jobs:
- build-and-test
正如我所说,在我移动测试类之前,同一个 yml 文件工作正常。现在它可能无法找到我的测试文件。这里可能是什么问题,我该如何解决?任何帮助表示赞赏。