Как запустить Maven Selen Project в Docker (Maven + Selenium + Java + TestNg + Docker) - PullRequest
0 голосов
/ 25 сентября 2019

Мне нужно запустить тестовые наборы селена в докер.Я сослался на несколько статей, попробовал то же самое.Я могу запустить тестовый пример в докере, в котором настроен только селен.Но мой проект - сборка Maven, которую я хочу запустить в Docker.

Проект настроен:

  1. Веб-драйвер Selenium с Java
  2. Maven в качестве инструмента сборки
  3. TestNg framework
  4. Запуск тестового примера через конфигурацию maven run, которая запускает тестовые примеры, обновленные в testng.xml

Что я понимаю из нескольких полезных статей:

  • необходимо создать jar
  • для создания тестового примера и запустить образ в докере.

Но я не могу заставить работать эту настройку.

1 Ответ

0 голосов
/ 26 сентября 2019

У меня нет опыта использования 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.

...