未提供项目说明

yellowbox的Python项目详细描述


黄箱

Test YellowBoxCoverage

Yellowbox使运行docker容器成为黑盒测试的一部分变得容易。在

示例

假设您要在依赖于redis服务器的服务上运行blackbox测试。在

fromdockerimportDockerClientfromyellowbox.extrasimportRedisServicedeftest_black_box():docker_client=DockerClient.from_env()withRedisService.run(docker_client)asredis:redis_port=redis.client_port()# this the host port the redis...# run your black box test here# yellowbox will automatically close the service when exiting the scopedeftest_black_box_with_initial_data():# you can use the service's built-in utility functions to# easily interoperate the servicedocker_client=DockerClient.from_env()withRedisService.run(docker_client)asredis:withredis.client()asclient:client.set("foo","bar")...

支持的附加功能

当前支持的内置服务包括:

  • 卡夫卡:from yellowbox.extras import KafkaService
    • 目前,kafka服务只支持明文协议,并且总是绑定到主机端口9092
  • 日志存储:from yellowbox.extras import LogstashService
  • RabbitMQ:from yellowbox.extras import RabbitMQService
  • Redis:from yellowbox.extras import RedisService

注意:所有这些附加项都需要项目的extras中指定的附加依赖项。在

网络

Yellowbox还可以方便地设置临时docker网络,以便不同的容器和服务可以 直接沟通。在

^{pr2}$

作为Pytest夹具

yellow服务和网络都可以与pytest修复程序一起使用

fromdockerimportDockerClientfrompytestimportfixturefromyellowbox.extrasimportRedisService@fixturedefdocker_client():docker_client=DockerClient.from_env()yielddocker_clientdocker_client.close()@fixturedefredis_service(docker_client):withRedisService.run(docker_client)asservice:yieldservicedefblack_box(redis_service):# run your test with the redis service provided...

由于docker容器可能需要一些时间来设置,所以建议将其作用域至少设置为"module"

延伸黄色

用户可以通过实现YellowService抽象类来创建自己的黄色服务类。 如果服务只封装一个容器,SingleContainerService类已经实现了 必要的方法。在

许可证

Yellowbox是根据麻省理工学院的公共许可证注册的

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

推荐PyPI第三方库


热门话题
tomcat Java条带错误   java OPENTSDB fsck修复程序不更正重复点   java JavaFX在控制器内切换自身的可见性   java maven surefire插件未并行执行运行程序   读取导致Freemarker模板引擎中TemplateException的Java对象   无法使Java库与我的Android应用程序一起工作   安卓 java。lang.IllegalStateException游标   使用Java检索XML文件中的XSL URL和名称   java如何从文本文件集合中提取特定值   电子邮件java mail gmail   java为什么finalize()只被垃圾收集器调用一次?   java方法findViewById(int)对于Json类型是未定义的。蛇形   java在安卓中尝试从brother打印机打印位图时遇到以下异常   java在颤振中支持Kotlin的优势   java从后面编写文本   java制作列表。第一个列表可以有相同的数字,第二个将是价格,尝试制作第三个列表,如果它们是相同的数字,它将添加价格