如何在集成测试中测试 JSch scp 命令?
How can I test JSch scp command in an integration test?
我已经获取了这个文件 http://www.jcraft.com/jsch/examples/ScpTo.java.htm 并且我制作了一个 Spring 引导应用程序,它将文件 SCP 发送到远程主机。但是,我在考虑如何测试它以确保它可以将文件发送到远程服务器时遇到了麻烦。
我已经为我制作的每个组件创建了单元测试,但是我无法思考如何为这个应用程序创建一个集成测试,所有的东西都连接成一个 spring 启动应用程序来测试 SCPing到远程主机,但对于 CI 构建是独立的。
我的一个想法是使用 testcontainers 和 Spring 启动,但有几件事我需要验证。
- 我会在 docker 文件中放入什么?
- 如果我没有在用于服务器连接的摘要图像中公开 HTTP 端口,我会使用什么样的等待策略?
- 考虑到 docker 有 docker-cp,SCP 会在主机和 docker 容器之间工作吗?
可以找到我的代码库here。
- 您或许可以尝试使用 https://hub.docker.com/r/rastasheep/ubuntu-sshd
- 我认为您不必在您的案例中指定等待策略。
- 您可以获得主机
container.getHost()
并像使用常规 ssh 服务器一样使用它。
我已经获取了这个文件 http://www.jcraft.com/jsch/examples/ScpTo.java.htm 并且我制作了一个 Spring 引导应用程序,它将文件 SCP 发送到远程主机。但是,我在考虑如何测试它以确保它可以将文件发送到远程服务器时遇到了麻烦。
我已经为我制作的每个组件创建了单元测试,但是我无法思考如何为这个应用程序创建一个集成测试,所有的东西都连接成一个 spring 启动应用程序来测试 SCPing到远程主机,但对于 CI 构建是独立的。
我的一个想法是使用 testcontainers 和 Spring 启动,但有几件事我需要验证。
- 我会在 docker 文件中放入什么?
- 如果我没有在用于服务器连接的摘要图像中公开 HTTP 端口,我会使用什么样的等待策略?
- 考虑到 docker 有 docker-cp,SCP 会在主机和 docker 容器之间工作吗?
可以找到我的代码库here。
- 您或许可以尝试使用 https://hub.docker.com/r/rastasheep/ubuntu-sshd
- 我认为您不必在您的案例中指定等待策略。
- 您可以获得主机
container.getHost()
并像使用常规 ssh 服务器一样使用它。