我目前正在尝试将Spring集成到我的Cucumber测试中。我有一个自定义的SpringFactory,如中所述:
http://www.zsoltfabok.com/blog/2012/01/cucumber-jvm-di/
但是代码没有被调用。用我的测试“连接”工厂的最好方法是什么?
从已删除答案的评论中澄清:主要问题是我的测试将Cucumber作为主要跑步者,即@RunWith(Cucumber.class),所以不能在这里使用SpringJUnit4ClassRunner。上面的链接中描述了这一点,但没有描述如何读取cucumber.xml。我添加了一个新的SpringFactory,但它没有读取XML文件。
更新:通过添加以下内容,实际上已经走得更远:
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-spring</artifactId>
<version>1.0.0.RC15</version>
</dependency> 然而,我有@Autowired变量,因为测试是由Cucumber运行的,所以没有注入这些变量。
其他人也有这个问题吗?
发布于 2012-02-24 07:20:18
在谷歌上快速搜索“黄瓜弹簧集成”,我会看到here和here。如果你使用的是cuke4duke,这看起来是一种更简单的方法。
该示例似乎表明,默认情况下,cuke4duke将从类路径的基址加载cucumber.xml。这是一个Spring配置文件,其中必须包含使用@StepDefinition注释的类的component-scan。
您不需要提供SpringFactory,也不需要使用@RunWith注释,只需提供一些Spring配置和一个或多个jvm属性即可。
发布于 2014-04-25 18:38:02
更新: cuke4duke项目现在已经过时了,已经被Cucumber-JVM所取代。
我也遇到了同样的问题,根本原因是cucumber- cucumber.xml -1.1.5.jar中的SpringFactory没有读取弹簧。Spring DI无声地失败了,导致了NPE。从submission 448开始,Cucumber SpringFactory不再加载cucumber.xml,您需要在所有步骤定义类中包含@ContextConfiguration("classpath*:cucumber.xml")。
发布于 2012-10-04 20:41:26
我刚看过你的问题。最有可能的情况是缺少cucumber-spring模块依赖项。我已经更新了存储库,现在所有的依赖项都应该没问题了(我使用的是ivy)。
https://stackoverflow.com/questions/9411591
复制相似问题