У меня нет опыта использования TestNg, но я запускаю тестирование Selenium через maven в докере со следующей конфигурацией:
docker-compose.yml (это позволит вам подключиться к отдельному контейнеру селена селена)
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
В вашем pom.xml в «maven_container» обязательно включите зависимость от селена (см. Ниже).
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>${selenium.version}</version>
</dependency>
Наконец, образ докера для «maven_container»».Обратите внимание, что нам нужно скопировать наш локальный файл pom.xml поверх генерированного pom.xml, если мы хотим запустить сборку mvn и т. Д. Перед монтированием томов в docker-compose.
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
.