Как подключить ваш контейнер pytest к контейнеру appium, работающему на том же докере, используя команду --link - PullRequest
0 голосов
/ 23 июня 2019

Я запускаю appium в контейнере. Я могу запустить свои тесты также в контейнере. Оба работают на одной и той же докер-машине, но я не могу указать свои тесты на контейнере appium. Я попытался запустить тесты с --link, но не работает.

запуск моего контейнера appium с командой:

docker run -d -p 32769:4723 --privileged --name appium_server_v1 appium/appium

предоставление порта 32769 для использования Pytest

используя host = 0.0.0.0 и port = 32769 в моих желаемых возможностях

Я запускаю свои тесты pytest с помощью команды:

docker run -it --link appium_server_v1:appium/appium --name uitests_v1 uitests

uitests - это мое изображение, содержащее мои тесты

Я собрал его с помощью Dockerfile, содержимое которого:

FROM python:alpine3.7
WORKDIR .
COPY . .
RUN pip install --trusted-host pypi.python.org -r requirements.txt
EXPOSE 80
CMD ["pytest"]

Я использую Mac OS

Я могу запускать тесты, когда мои тесты выполняются локально, а сервер appium работает в контейнере на док-машине. Я использую HOST = 192.168.99.100 и PORT = 32769

=========================================================================================== test session starts ============================================================================================
platform linux -- Python 3.7.2, pytest-4.3.0, py-1.8.0, pluggy-0.9.0
rootdir: /, inifile:
plugins: metadata-1.8.0, html-1.20.0
collecting ...

Это журналы pytest, после которых он не запускается и ничего не появляется в журналах сервера appium

Я использую реальное устройство с хостом и портом для подключения adb через appium conatiner. Я ожидаю, что мои тесты будут выполняться на реальном устройстве, которое работает, когда я запускаю свой тест из локального режима, но не запускается, когда я делаю свои тесты в доке.

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

решение @michalk сказал работает. Я немного отредактировал файл Docker

Использовать официальную среду выполнения Python в качестве родительского образа

ИЗ питона: alpine3.7

Установить рабочий каталог в / app

WORKDIR / app

Установить рабочий каталог в / app

КОПИЯ. / Приложение

Установите все необходимые пакеты, указанные в needs.txt

RUN pip install --trusted-host pypi.python.org -r needs.txt

Сделать порт 80 доступным для мира вне этого контейнера

ВОЗДЕЙСТВИЕ 80

Запускать pytest при запуске контейнера

CMD ["pytest", "/ app /"]

и я удалил все файлы .pyc, используя команду для правильного выполнения тестов в контейнере Docker

find . -name "*.pyc" -exec rm -f {} \;
0 голосов
/ 23 июня 2019

link опция устарела .Вы должны создать сеть и подключить к ней контейнеры:

docker network create mynet

docker container run -d -p 32769:4723 --privileged --network=mynet --name appium_server_v1 appium/appium

docker container run -it --network=mynet --name uitests_v1 uitests

А затем вы можете подключиться к вашему серверу appium с помощью appium_server_v1:4723 из контейнера uitests_v1.

...