docker - 如何在赛普拉斯测试中执行 docker-compose 命令
问题描述
我的应用项目的根目录包含我的 docker-compose 和 Makefile,以及一个名为 apps 的文件夹。应用程序内部是 api 和前端。我的赛普拉斯安装在前端文件夹中。
我希望能够cy.exec('make reset-fixtures')
从赛普拉斯内部运行命令。这会返回一个“没有规则来制作目标重置装置”错误,我认为这可能是因为我正在从树中比我的 Makefile 更深的文件夹执行。因此,我将命令更改为cy.exec('cd ../.. && make reset-fixtures')
产生以下结果:
Stderr:
the input device is not a TTY
make[1]: *** [reset-fixtures] Error 1
能够从赛普拉斯内部执行这些 make 命令的最佳方法是什么?
编辑:这是 make 命令:
reset-fixtures:
@docker-compose exec mongodb /scripts/reset-fixtures.sh
解决方案
对我有用的是使用-T
带有 docker-compos exec 的选项。这可以防止使用 TTY:
-T, --no-TTY docker compose exec Disable pseudo-TTY allocation. By default docker compose exec allocates a TTY.
这将使其如下所示:
柏树测试
cy.exec('(cd ../; make your_command)')
生成文件
your_command:
docker-compose exec -T your_container path_to_executable
推荐阅读
- c++ - 是否可以在 Visual Studio 上设置选项以保持不同多线程设置之间的确定性浮点结果?
- javascript - 我如何以 PDF 格式下载谷歌数据工作室报告
- java - 正确等待使用 Java 等待给定的数据库值?
- google-cloud-logging - 跳转到 Stackdriver 日志查看器中的搜索文本
- python - 使用带有 --debug 参数的 Pyinstaller 时出现的问题
- css - 如何修复 HTML 样式覆盖 CSS?
- javascript - Openlayers geometry shapes not zooming when map is zoomed
- c# - Convert.ToBase64String 给出空字符串
- sql - SQL:我需要一列根据其他列的值自动更新其值
- plot - 如何为 X 轴创建对数刻度的 ROC 曲线图?