黄瓜和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