【发布时间】:2022-01-05 01:50:56
【问题描述】:
我有一个启动额外容器的 spock 集成测试。
@Shared
protected GenericContainer seleniumStandalone =
new GenericContainer<>("selenium/standalone-chrome:latest")
.withExposedPorts(4444)
.withCreateContainerCmdModifier({ cmd -> cmd.withName('dockerized-chrome') })
.withCopyFileToContainer(
MountableFile.forClasspathResource("install_python.sh", 0744),"/install_python.sh")
.withCopyFileToContainer(
MountableFile.forClasspathResource("test.py", 0744),"/test.py")
容器“dockerized-chrome”有一个 python 脚本。他内部的脚本试图向最初在 java 源代码中的端点发出请求。这就是为什么我很好奇这是获取有关名称或 id java 容器的信息的原因,该容器由 TestContainers 注释创建,该注释还具有在 java 项目中创建的端点。 为了更清楚,我添加了一张图片。
【问题讨论】:
-
我不明白你想说什么,你能否重新表述你的问题以使其更清楚。什么需要和什么谈?用哪种方法?您是尝试连接端口,还是尝试调用容器接口上的方法?
-
@LeonardBrünings 我进行了更改。我想在集成测试运行时使用 python 脚本向 Testcontainers 创建的 java 容器发出请求。
-
如果你想做一些浏览器测试,我建议你使用很棒的Geb framework,而不是仅仅使用java来启动一个容器,然后尝试连接一个python脚本。
标签: java docker spock testcontainers