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

Spring 在常规应用程序上下文而不是测试上下文中从API运行测试,spring,spring-boot,cucumber,spring-boot-test,cucumber-java,Spring,Spring Boot,Cucumber,Spring Boot Test,Cucumber Java,我想创建一个cucumber测试应用程序,它将从API输入(如POST-@RequestBody)中获取一个功能文件,然后为该文件运行测试。从我的研究中,我看不到任何可能的方法来代替在@SpringBootTest中设置所有内容,将测试文件包括在resource中,然后运行mvn test。这不是运行测试的好方法,因为您必须进入应用程序添加或修改场景文件,然后运行测试。从带有文件输入的API运行测试对其他人来说会容易得多,因为cucumber的目标是使其变得人性化,而无需大量编码。我发现这个解决

我想创建一个cucumber测试应用程序,它将从API输入(如POST-@RequestBody)中获取一个功能文件,然后为该文件运行测试。从我的研究中,我看不到任何可能的方法来代替在@SpringBootTest中设置所有内容,将测试文件包括在resource中,然后运行
mvn test
。这不是运行测试的好方法,因为您必须进入应用程序添加或修改场景文件,然后运行测试。从带有文件输入的API运行测试对其他人来说会容易得多,因为cucumber的目标是使其变得人性化,而无需大量编码。

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

  • 使用测试单元创建普通应用程序
  • 确保安装了maven/gradle并将其添加到路径中
  • 在常规应用程序中,创建使用以下代码的方法:
//windows:“cmd”、“/c”
//unix:“/bin/sh”,“-c”
ProcessBuilder=newProcessBuilder(“cmd”、“c”、“mvn”、“test”);
builder.redirectErrorStream(true);
进程p=builder.start();
BufferedReader=新的BufferedReader(新的InputStreamReader(p.getInputStream());
//处理来自读取器的测试结果的代码
//我只需要将此作为API响应发送回。因此,没有其他impl