我没有使用 TestNg 的经验,但我使用以下配置在 docker 中通过 maven 运行 Selenium 测试:
docker-compose.yml(这将允许您连接到单独的 selenium docker 容器)
image: selenium/standalone-firefox
volumes:
- /dev/shm:/dev/shm
ports:
- "4444:4444"
expose:
- 4444
maven_container:
build: . # uses Dockerfile
links:
- remote-webdriver
volumes:
- <your local volume>:<container volume>
stdin_open: true
tty: true
entrypoint: /bin/sh
在“maven_container”中的 pom.xml 中,确保包含 selenium 依赖项(见下文)。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>${selenium.version}</version>
</dependency>
最后,“maven_container”的 docker 镜像。请注意,如果我们想在 docker-compose 中安装卷之前运行 mvn build 等,我们需要将本地 pom.xml 复制到生成的通用 pom.xml 上。
FROM zenika/alpine-maven
RUN apk update \
&& apk add ca-certificates wget \
&& update-ca-certificates
RUN apk add vim
RUN mvn archetype:generate -B \
-DarchetypeGroupId=net.alchim31.maven -DarchetypeArtifactId=<intended artifact ID> -DarchetypeVersion=1.7 \
-DgroupId=com.myproject -DartifactId=MyProject -Dversion=0.1-SNAPSHOT -Dpackage=com.scalascrape
WORKDIR /usr/src/app/MyProject
RUN rm pom.xml
COPY pom.xml .
注意!在连接到它之前,您必须等待 selenium 服务器启动。如果您想使用 docker-compose up 命令运行测试,这是一个重要的考虑因素。