1

我有一个这样的文件夹布局:

src/integrationTest/java/
  com/eric/
    RunCukeTest.java
    StepDefs.java
src/integrationTest/resources/
  features/
    foo.feature
  cucumber.xml
src/main/java/
  com/eric/
    java-spring.java
src/main/resources/
  com/eric/
    applicationContext.xml

我的类路径上有黄瓜弹簧 1.1.5

当我在 Eclipse 中作为 JUnit 测试运行时,我无法让 RunCukeTest.java 获取 cucumber.xml。cucumber 如何解决 cucumber.xml 应该存在的位置?

谢谢!埃里克

4

3 回答 3

2

它应该在资源目录的根目录中。在您的情况下,它应该是 src/integrationTest/resources

于 2013-10-22T21:09:52.043 回答
1

v1.1.4 引入的提交SpringFactory之一对类进行了重大更改,其中“cucumber.xml”从要加载的应用程序上下文文件列表中删除(仍在尝试找出原因)。

要解决此问题,您必须@ContextConfiguration({"cucumber.xml"}) 在步骤定义类中使用。

src/test/java/example/cucumber/Runner.java

@RunWith(Cucumber.java)
public class Runner {
    // nothing here
}

src/test/java/example/cucumber/RunnerStepDefs.java

@ContextConfiguration({ "cucumber.xml" })
public class RunnerStepDefs {

    @Autowired
    private SuperBean super;

    // moar stuff
}

使用 Spring 3.0.6 和 Cucumber-JVM 1.1.5 测试。

于 2014-03-27T18:37:54.393 回答
0

在黄瓜 1.1.5 中,cucumber.xml 未被读取。在 1.1.3 之前,cucumber-spring jar 中的 SpringFactory 类用于使用 SpringFactory 类的静态块中定义的 applicationContext 加载 cucumber.xml 中定义的 bean。

于 2014-01-28T22:52:50.103 回答