"path must exist" 黄瓜 + Spring 启动
"path must exist" for Cucumber + Spring Boot
我制作了一个 Spring Boot 2
应用程序,其中包含一个要执行的端点 Cucumber test
5.7.0 版本
@PostMapping("/integration")
public Object runCucumber(@RequestBody List<String> request) {
try {
String pathDirectory = "src/main/resources/" + request.get(0);
String response = String.valueOf(Main.run(new String[]{"--glue", //Cucumber type (--glue)
"pmc/aop/integration", // the package which contains the glue classes
pathDirectory} //Step package
, Thread.currentThread().getContextClassLoader()));
return ResponseEntity.ok(request);
} catch (HttpClientErrorException ex) {
log.error(ex.getLocalizedMessage());
return ResponseEntity.status(ex.getStatusCode()).body(ex.getStatusText());
} catch (IllegalArgumentException ex) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(ex.getLocalizedMessage());
}
}
使用的请求
[
"features/local/notify.feature"
]
如您所见,我想在 local
文件夹内、features
文件夹内、resources
文件夹内执行 notify.feature
[=23] =]
这是配置
@SpringBootTest
@AutoConfigureMockMvc
@CucumberContextConfiguration
@CucumberOptions(features="src/main/resources")
public class CucumberConfiguration {
}
本地一切正常,但在我的服务器上我得到了
path must exist: /app/src/main/resources/features/local/heal.feature
怎么了?
部署应用程序时,src/main/resources/
目录不存在。您可以通过检查您创建的 jar 或 war 文件的内容来验证这一点。
相反,请尝试在 class 路径上找到该功能。例如。 classpath:com/example/app/my.feature
.
我制作了一个 Spring Boot 2
应用程序,其中包含一个要执行的端点 Cucumber test
5.7.0 版本
@PostMapping("/integration")
public Object runCucumber(@RequestBody List<String> request) {
try {
String pathDirectory = "src/main/resources/" + request.get(0);
String response = String.valueOf(Main.run(new String[]{"--glue", //Cucumber type (--glue)
"pmc/aop/integration", // the package which contains the glue classes
pathDirectory} //Step package
, Thread.currentThread().getContextClassLoader()));
return ResponseEntity.ok(request);
} catch (HttpClientErrorException ex) {
log.error(ex.getLocalizedMessage());
return ResponseEntity.status(ex.getStatusCode()).body(ex.getStatusText());
} catch (IllegalArgumentException ex) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(ex.getLocalizedMessage());
}
}
使用的请求
[
"features/local/notify.feature"
]
如您所见,我想在 local
文件夹内、features
文件夹内、resources
文件夹内执行 notify.feature
[=23] =]
这是配置
@SpringBootTest
@AutoConfigureMockMvc
@CucumberContextConfiguration
@CucumberOptions(features="src/main/resources")
public class CucumberConfiguration {
}
本地一切正常,但在我的服务器上我得到了
path must exist: /app/src/main/resources/features/local/heal.feature
怎么了?
部署应用程序时,src/main/resources/
目录不存在。您可以通过检查您创建的 jar 或 war 文件的内容来验证这一点。
相反,请尝试在 class 路径上找到该功能。例如。 classpath:com/example/app/my.feature
.