java - 通过 Docker 运行依赖于父项目的集成测试项目

标签 java docker integration-testing

我是这个网站的新手(尽管我已经多次使用它来获取信息!)并且决定提出一个问题,因为我和我的同事都对 Docker 很陌生,因为他们对这项技术还很陌生。

我有一个用 Java 编写的集成测试项目,它测试系统的各个部分。我已经为通过运行运行的项目设置了 Maven 目标:

mvn clean verify -P integraion-test

从命令行运行时效果很好,但我们希望通过使用 Docker 将其容器化来扩展该进程。问题是集成测试项目依赖于项目中尝试测试的一些 jar,例如 DAO 和 API 相关的东西。在我的 POM.xml 中,我有

<parent>
 <groupId>com.fleet</groupId>
 <artifactId>fleet-parent</artifactId>
 <version>1.0.0</version>
</parent>

这将从父级中拉取依赖项,以便它们可以在集成测试项目中使用。

但是,当我使用构建我的 dockerfile

docker build -t integration-tests .

我收到以下错误:

The project com.kinesisfleet.integration:running-integration-tests:0.1 (/integration-test/pom.xml) has 1 error [ERROR] Non-resolvable parent POM for com.fleet.integration:running-integration-tests:0.1: Could not find artifact com.fleet:fleet-parent:pom:1.0.0 in central (https://repo.maven.apache.org/maven2) and 'parent.relativePath' points at wrong local POM.

这是我的 Dockerfile:

FROM maven

ADD . /integration-test

WORKDIR /integration-test

RUN mvn clean install

CMD mvn verify -P integration-test

是否有办法将父级的 jar 放入我的集成测试项目中以便可以使用它们?

我可以使用 COPY 命令从项目中的本地存储库复制 jar 吗?

如有任何帮助,我们将不胜感激。

最佳答案

欢迎来到 stackoverflow!

Maven 尝试从公共(public) maven-repository 下载parent-pom,但在那里找不到它。您的公司是否有私有(private) maven 存储库,并且您是否将parent-pom 上传到该私有(private)存储库?

如果是,只需将您的 Maven settings.xml 复制到您的镜像中。在该 settings.xml 中,您应该配置您的私有(private)存储库。

关于java - 通过 Docker 运行依赖于父项目的集成测试项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52553042/

相关文章:

java - 使用 Ant Build 的 Travis CI,找不到 JUnit

tomcat - Docker 和 Kubernetes 上的 symmetryds 用于 Google 容器引擎部署

python - 我怎样才能找到在基础测试类上定义的类属性?

docker - docker拉入公司网络-Windows

ssl - Docker:TLS握手超时

python - 如何在 pytest 中将单元测试和集成测试分开

c# - 如何使用 Entity Framework Code First V6.1.2 进行集成测试

java - android.permission.ACCESS_FINE_LOCATION 还向 android.permission.ACCESS_COARSE_LOCATION 授予权限

java - 摘要列表<人>

java - append 到文本文件,同时将存储的数据保留在文本文件中