运行、管理和停止docker compose project from docker api
pytest-dockerc的Python项目详细描述
Pytest dockerc
pytest dockerc是提供支持的pytest插件
用于从Docker Compose项目运行测试。
docker-compose up -d
命令在
测试会话和最后的docker-compose down
命令。主夹具dockerc
返回compose.project.Project
在测试中处理python docker api。提供另一个fixturedockerc_logs
来启用
测试执行期间stdout上的日志。
这个插件提供了一种尽可能使用相同环境进行开发、测试的方法, 集成和生产阶段。为了避免 生产中的副作用。
安装
pip install pytest-dockerc
入门
在基本示例下面,您还可以使用 http server。
工作树
├── docker-compose.yml
└── tests
├── conftest.py
└── test_example.py
docker compose.yml
version:"3.6"services:python:image:python:3-alpine
测试示例.py
deftest_example(dockerc):assertlen(dockerc.containers())==1container=dockerc.containers()[0]assertcontainer.is_runningisTrueassertcontainer.labels["com.docker.compose.service"]=="python"
可用选项
有些选项可用于更新插件的默认行为。
dockerc:
--dockerc-norun disable the run and stop commands of docker-compose
--dockerc-attach-network
attach the pytest container to the docker-compose
network,only if pytest is started inside a container
--dockerc-filepath=DOCKERC_FILEPATH
set the Compose file path
--dockerc-projectdir=DOCKERC_PROJECTDIR
set the working directory of the Compose project
--dockerc-projectname=DOCKERC_PROJECTNAME
set project name of the Compose project
--dockerc-build build images before starting containers
--dockerc-services=DOCKERC_SERVICES
select services to run
不使用docker compose的up和down命令运行测试
如果加载多个服务,运行完整的docker compose项目可能需要时间。它是 对正在运行的实例运行测试很有用。当您编写新的 测试。
首先像往常一样开始编写Docker:
docker-compose up
然后使用--dockerc-norun
运行测试,这将跳过up
和down
命令:
pytest --dockerc-norun
在Docker下面,在测试运行2次后合成输出tests/test_fixtures::test_basic_workflow
,
执行GET请求。
Creating network "pytest-dockerc_default" with the default driver
Creating pytest-dockerc_http_1 ... done
Attaching to pytest-dockerc_http_1
http_1 | 192.168.32.1 - - [24/Dec/2018:08:48:21 +0000] "GET / HTTP/1.1" 200 612 "-" "python-requests/2.20.0" "-"
http_1 | 192.168.32.1 - - [24/Dec/2018:08:48:22 +0000] "GET / HTTP/1.1" 200 612 "-" "python-requests/2.20.0" "-"