黄瓜和Spring启动集成有错误

Spring启动和黄瓜集成,当我打包这个项目成为jar使用mvn包命令并生成advvic-1.0.jar。 但是,如果我运行这个jar子

java -jar target/advvic-1.0.jar 

我收到此错误:

引起:cucumber.runtime.CucumberException:没有找到后端。 请确保您的CLASSPATH上有后端模块。

但是,如果我提取这个jar,我在lib文件夹中找到了cucumber-java.jar

这是我的pom:

   4.0.0 com.advvic.cucumber.spring advvic 1.0 jar cucumber-spring-boot http://maven.apache.org  UTF-8 1.8 1.4.1.RELEASE 1.2.5 3.0.1 2.13     org.springframework.boot spring-boot-dependencies ${spring-boot.version} pom import      org.springframework.boot spring-boot-starter-data-jpa   org.springframework.boot spring-boot-starter-jdbc     com.h2database h2   org.springframework.boot spring-boot-starter-test   info.cukes cucumber-java ${cucumber.version}   info.cukes cucumber-core ${cucumber.version}   info.cukes cucumber-spring ${cucumber.version}   info.cukes cucumber-junit ${cucumber.version}   junit junit 4.12   com.google.guava guava 20.0     org.seleniumhq.selenium selenium-server ${selenium.version}   org.seleniumhq.selenium selenium-java ${selenium.version}   xml-apis xml-apis 1.4.01   org.javassist javassist 3.20.0-GA      org.springframework.boot spring-boot-maven-plugin ${spring-boot.version}    true true   repackage      org.apache.maven.plugins maven-compiler-plugin 3.5.1  true 1.8 1.8      

我有一个Spring Boot应用程序的完全相同的问题,我想用它作为Cucumber测试的跑步者。

问题是Spring Boot以自己的方式重新打包所有内容,因此默认的Cucumber ResourceLoaders很难找到任何cucumber.runtime.Backend类以及特征文件和步骤定义。

我最终做的是使用Spring特定的类来实现自定义的cucumber.runtime.io.ResourceLoader来搜索类路径。 我在https://stackoverflow.com/a/17283721/3216618上得到了这个想法

 PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); String locationPattern = ... use path and suffix to Resource[] resources = resolver.getResources(locationPattern); 

最后你需要从找到的org.springframework.core.io.Resource []创建一个Iterable。

也许这可以帮助你:

   org.springframework.boot spring-boot-maven-plugin    info.cukes cucumber-java     
Interesting Posts