docker 单元测试设置

2024-03-16

我想为我的产品设置一个单元测试环境。我有一个基于 Lua 中的 nginx 构建的 Web 应用程序,它使用 mysql 和 redis。我认为 docker 会对此很有帮助,尽管我是 docker 的新手。我的应用程序运行在 centos 服务器(生产服务器)上。

我计划为mysql、redis和webapp设置不同的容器,然后在我的mac(我的开发机器是MAC)或VM中编写UT应用程序(使用Busted框架对Lua进行单元测试)来测试它。 UT 应用程序将与 docker 容器 nginx 通信,而 nginx 将使用容器 mysql 和 redis。这个好吗 ?如果是,有人可以指导我如何做到这一点吗?也许有一些好的链接?如果没有,还有什么更好的方法。我已经尝试过使用 vagrant,但这花费了太多时间,这不应该在我的 UT 案例中。


有关我们如何设置项目模板的示例,您可以查看phundament/app https://github.com/phundament/app及其测试设置。

我们正在使用 dockerizedGitLab https://github.com/sameersbn/docker-gitlab安装与定制跑步者 https://github.com/schmunk42/docker-gitlab-runner,它能够执行docker-compose.

笔记!运行器本身在单独的 Docker 主机上运行。

我们正在使用docker-compose.yml定义services https://github.com/phundament/app/blob/4.0.0-rc15/docker-compose.yml在堆栈中进行调整发展 https://github.com/phundament/app/blob/4.0.0-rc15/docker-compose.override-dist.yml and testing https://github.com/phundament/app/blob/4.0.0-rc15/build/compose/test.override.yml.

The CI配置 https://github.com/phundament/app/blob/4.0.0-rc15/.gitlab-ci.yml经过优化以处理隔离堆栈的多个并发测试,这只需通过指定自定义即可完成COMPOSE_PROJECT_NAME.

有关我们的测试过程的一些深入文档以及有关的有用信息docker-compose和 Docker 化的 CI。

  • #测试自述文件 https://github.com/phundament/app/tree/4.0.0-rc15#testing
  • #测试文档 https://github.com/phundament/docs/blob/master/4-testing/testing.md
  • CI 构建 https://git.hrzg.de/phundament/app/builds?scope=all
  • 扩展服务和撰写文件 https://docs.docker.com/compose/extends/
  • 用于 CI 的 Docker-in-Docker? https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/

最后,特拉维斯·西尔 https://docs.travis-ci.com/user/docker/一段时间以来也支持 Docker,但我根本没有测试过这种方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker 单元测试设置 的相关文章

  • 从 gitlab docker runner 启动声纳扫描仪

    我有一个 CI 工作流程 集成了 linting 作业和代码质量作业 我的 Linting 工作是一个 docker runner 从应用程序代码启动我的 eslint 脚本 然后我的代码质量工作应该启动声纳扫描仪泊坞窗实例 检查我的代码并
  • 使用反向代理进行过多重定向

    Setup 云flare DNS docker 撰写 nginx 反向代理 WordPress 的 fpm Nginx PHP 处理程序 Problem 重定向太多 如以下日志所示 Attaching to wp db wp wp web
  • 安装Lua套接字库

    要么我太累了 要么我瞎了 我想学习 Lua 网络 因此我必须安装socketlib 所以我可以轻松地要求它 但我不知道我应该 要求 哪些文件 例子说 local socket require socket 但正如我所说 如果我使用 我不知道
  • 当 TestCase 包含数组时,NUnit 无法识别该 TestCase

    这是我在 NUnit 中遇到的非常简单但烦人的行为 我有一些这样的测试 Test TestCase 1 2 hello TestCase 3 5 goodbye public void MyClass MyMethod int a int
  • 检查多个位置的值并仅在源唯一时返回匹配项

    假设我有一个清单Vendors 阿斯达 乐购 Spar 我有一个清单Sources 或者这个类比中的供应商 家乐氏 Kellogg 吉百利 Cadbury 雀巢 Nestle 强生 Johnsons 帮宝适 Pampers Simple 等
  • 如何根据 Kubernetes / Docker 事件发送警报?

    是否可以根据 Kubernetes 集群内发生的事件以某种方式发送警报 到电子邮件 slack 特别是 如果 Pod 意外重新启动或 Pod 无法启动 那么获取警报将非常有用 同样 了解 Pod 的 CPU 使用率是否超过特定阈值并获取警报
  • 对需要发送标头的项目进行单元测试

    我目前正在与 PHPUnit 合作 尝试在我正在编写的内容的同时开发测试 但是 我目前正在编写会话管理器 并且在这样做时遇到了问题 Session 处理类的构造函数是 private function construct if header
  • 使用 MongoDB docker 镜像停止虚拟机而不丢失数据

    我已经在 AWS EC2 上的虚拟机中安装了官方的 MongoDB docker 映像 并且数据库上已经有数据 如果我停止虚拟机 以节省过夜费用 我会丢失数据库中包含的所有数据吗 在这些情况下我怎样才能让它持久 有多种选择可以实现此目的 但
  • Docker OSX:从容器连接到主机端口

    我的问题 我正在尝试在 docker 容器上安装 Flask 应用程序 该应用程序需要通过以下方式安装一些软件包pip https pip pypa io en stable 我在端口 9000 上使用本地 主机 而不是容器 pip 存储库
  • 无法使用docker在Apple Mac芯片M1上启动elasticsearch

    在发布这个问题之前 我浏览了许多链接 例如 Kibana 无法在 Mac M1 上使用 docker 连接到 ElasticSearch https stackoverflow com questions 73160632 kibana c
  • django_debug_toolbar 和 Docker

    因此 我让 docker 和 Django 在本地工作 首先从 Dockerfile 构建一个映像 然后使用 Fig 获取 postgres 映像 将其链接到基础映像 然后运行本地服务器 除了 django debug toolbar 之外
  • Git 提交从 Windows 上的守护程序返回错误 docker/error 响应

    我正在为我的 Laravel 应用程序 BE 运行 docker 我对 readmeme md 文件进行了简单的更新 并尝试将此文件提交并推送到 git 当我尝试提交时 这就是我得到的 gt git c user useConfigOnly
  • 设置具有不同输入的测试方法

    我想在 C 中测试所有代码路径的以下方法 public int foo int x if x 1 return 1 if x 2 return 2 else return 0 我见过这个pex单元测试 http fernandomachad
  • 如何对 Docker 容器中运行的 Spring Boot 应用程序进行健康检查?

    我正在 Docker 容器中运行 Spring Boot 应用程序 使用 Docker 文件启动容器中的应用程序 如何检查容器内 Spring Boot 应用程序的运行状况 如果容器停止或应用程序未运行 我需要根据运行状况检查自动重新启动容
  • C#中的FsCheck:生成形状相同的二维数组列表

    假设我正在编写一些用于视频分析的代码 这是 Video 类的简化版本 public class Video public readonly int Width public readonly int Height public readon
  • 无法在 Visual Studio 2022 中启动调试适配器

    如果我创建一个启用了 Docker 支持的 ASP Core MVC 目标框架 5 0 并启动它 我会得到 发生一个或多个错误 无法启动调试适配器 附加信息可能会 在输出窗口中可用 操作被取消 这是调试输出 启用 DebugAdapterH
  • Docker-compose v3 不持久保存 postgres 数据库

    在 docker compose v3 容器关闭并重新启动后 我很难保留 postgres 数据 这似乎是一个常见问题 但经过大量搜索后我无法找到有效的解决方案 我的问题与这里类似 如何使用卷将数据保存在 dockerized postgr
  • 将 Foq 与 F# 函数类型结合使用

    例如 我使用 F 类型定义来防止函数之间的硬依赖 type IType1 int gt int type IType2 int gt string let func1 i int int i i let func2 i int string
  • 使用 Maven 插件测试工具测试 Mojos 的默认值和表达式:

    我在使用 Maven 插件测试工具 2 0 alpha1 时遇到问题 当我想测试 Mojo 时 参数的默认值和表达式不适用 我有以下参数 p The output file to write the settings to p parame
  • Docker:PermissionError:[Errno 13]权限被拒绝[重复]

    这个问题在这里已经有答案了 我在运行 docker compose 时得到了这个 Got permission denied while trying to connect to the Docker daemon socket at un

随机推荐