在可执行 Docker 图像上创建 Cucumber 测试

Creating Cucumber Test on Executable Docker Image

我正在想出一个关于如何在 Docker 可执行映像上创建 Cucumber 测试的想法?

public class GenerateNumber {
    public static void main(String[] args) {
        if (args != null && args.length > 0) {
            String input = args[0];

            if(input.equals("ODD")) {
                //GENERATE ODD NUMBERS FROM 0 TO 1000
            }else {
                //GENERATE EVEN NUMBERS FROM 0 TO 1000
            }
        }
    }
}

假设我有这个简单的 class 文件...我将它打包到一个可执行的 Jar 文件中,并使用这个 class 作为我的应用程序的入口点。 java 文件部署为容器化映像,它将 运行 我的 class.

现在,从 Cucumber 测试的角度来看,如何为这种情况创建步骤定义文件?

这是 docker 图片对吧?我正在想出一个关于如何进行这个测试的策略。 有做过类似需求的人的提示吗?

如何连接到您的示例取决于您希望何时验证它是否有效。

我的策略是在应用程序的构建期间进行。这减少了等式中的 Docker,任何关于 Cucumber 的 Java 教程都将适用。我有很多 tutorials on my blog. Maybe this post 可以提供一些帮助。使用现代版本的工具。

如果您想在应用程序在 Docker 中运行时从 Cucumber 步骤连接到应用程序,您需要一些方法来进行连接。这与从外部连接到任何服务器应用程序相同。一个示例可能是从 Cucumber 步骤驱动 Selenium 并验证 Web 应用程序。 post 可能有助于了解如何验证不同类型的应用程序。再次有点过时,但想法保持不变。

有点难以理解您要实现的目标

如果您的 docker 图像是一个执行的 'black box',并且您需要分析结果,则必须构建一个单独的 cucumber 测试项目,该项目将在主机上执行。

黄瓜步骤定义方法可以调用可以启动 docker 图像、登录到容器、拉出文件、读取日志等的方法,然后可以对其进行断言。您可以使用 Spotify docker 客户端库来做到这一点。