我正在容器中运行鸦片。我也可以在容器中运行测试。两者都在同一台docker机器上运行,但是我无法将测试指向appium容器。我尝试使用--link运行测试,但无法正常工作。
使用以下命令运行我的appium容器:
docker run -d -p 32769:4723 --privileged --name appium_server_v1 appium/appium
暴露端口32769供pytest使用
使用主机= 0.0.0.0和端口= 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服务器在docker机器的容器中运行时,我能够运行测试。我正在使用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服务器日志中什么也没有出现
我使用的是带有主机和端口的真实设备,用于通过appium调配器进行adb连接。我希望测试能在真实的设备上运行,而该设备在从本地运行测试时正在运行,而在对测试进行泊坞窗测试时则不在运行。
答案 0 :(得分:0)
link
选项为deprecated。您应该创建一个网络并将容器连接到它:
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_server_v1:4723
容器中使用uitests_v1
连接到您的appium服务器。
答案 1 :(得分:0)
@michalk所说的解决方案有效。我已经稍微编辑了Docker文件
从python:alpine3.7
WORKDIR / app
复制。 / app
运行pip install --trusted-host pypi.python.org -r requirements.txt
80号博览会
CMD [“ pytest”,“ / app /”]
并且我使用命令删除了所有.pyc文件,以使测试在docker容器中正常运行
find . -name "*.pyc" -exec rm -f {} \;