运行、管理和停止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运行测试,这将跳过updown命令:

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" "-"

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓中的java标签长点击问题   JavaSpringMVC多行表单提交提交新的ModelAttribute   程序来查找java程序中的方法数   在JSF中自动选择java下拉列表   java onNext为ArrayList的每个元素触发,而不是使用RXJava触发一次   为什么java不允许创建内部类的实例?   JavaJSF<p:calendar>小部件在选择不同月份时不会刷新   java如何限制JFileChooser只允许选择特定数量的文件?   java ANT build无法识别geckodriver可执行文件“驱动程序可执行文件不存在”   java TextView空指针异常   java试图在安卓中传递参数   如何将XML配置转换为Java   java支持使用JAXRPC的soap服务,但pom中没有定义它。xml   在Java中检查整个ArrayList