1

我是码头工人和量角器的新手,所以请多多包涵。

我有一个应用程序,它的后端 API 使用 python 和 django,前端使用 angular.js,并使用量角器进行 e2e 测试。所以这就是我认为我应该继续的方式:

  1. 我必须在 Python-Django 中为我的后端设置一个 docker 容器,然后通过一些 PORT 公开这个 API。
  2. 为 angular.js前端创建另一个容器(或不确定的层)。
  3. 下载量角器的图像并构建容器。
  4. 通过 docker 网络连接所有这些容器层?

选择

  1. 在本地机器上运行后端。
  2. 为量角器创建docker容器并以某种方式将e2e测试指向容器?

请帮助我查看实现此目的的步骤。该视频提供了一些见解,但不确定从哪里开始。

4

1 回答 1

1

你最初的想法是正确的。设置时,我通常使用像这样的 docker-compose 文件......

#docker-compose.yml
version: '2'

services:
  backend:
    build: ./backend
    command: <your django startup command>
  db:
    image: <postgres or whatever>
  frontend:
    build: ./frontend
    command: <npm start or equivalent>
    ports:
      - "80:80"

然后,我会运行我的测试

docker-compose run --rm frontend <MY TESTING COMMAND HERE>

Docker-compose 为您处理 docker 网络的东西——在这种情况下,您的前端将能够通过http://backend访问您的后端:。Protractor 和 npm 以及所有有趣的东西都安装在您的前端容器中。

你还没有想到的一个主要痛点是量角器需要一个显示器才能工作——它不能与像 phantomjs 这样的无头浏览器一起工作,而你的 docker 容器通常不会提供这种浏览器。这个 repo 是一个如何安装真实浏览器并为其提供假显示以便它可以在容器中工作的示例...... https://github.com/mark-adams/docker-chromium-xvfb,基本上替换带有 shell 脚本的 chrome 启动脚本,该脚本启动 xvfb 接口并将浏览器附加到它。

于 2017-02-09T21:39:17.693 回答