我想创建一个黄瓜测试应用程序,该应用程序将从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