在常规应用程序上下文而不是测试上下文中从API运行测试



我想创建一个黄瓜测试应用程序,该应用程序将从API输入中获取一个Feature文件,如POST-@RequestBody,然后运行该文件的测试。从我的研究中,我看不出有任何可能的方法可以做到这一点,而不是在@SpringBootTest中设置所有内容,将测试文件包括在资源中,然后运行mvn test。这不是运行测试的好方法,因为你必须进入应用程序添加或修改场景文件,然后运行测试。从API运行带有文件输入的测试对其他人来说会更容易使用,因为cucumber的目标是在不需要大量编码的情况下使其人性化。

我发现这个解决方案是有效的。尽管如此,它并没有为您提供外壳。

  • 创建一个带有测试单元的普通应用程序
  • 确保maven/gradle已安装并添加到PATH中
  • 在常规应用程序中,创建使用以下代码的方法:

// windows: "cmd","/c"
// unix: "/bin/sh","-c"
ProcessBuilder builder = new ProcessBuilder("cmd","/c","mvn","test");
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
// code to process test result from reader
// I only need to send this back to as API response. So there were no other impl

相关内容

最新更新