"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.