【问题标题】:Cucumber-JVM Runner class in different folder不同文件夹中的 Cucumber-JVM Runner 类
【发布时间】:2016-03-17 19:56:59
【问题描述】:

我是 Cucumber 的新手,正在学习并尝试自动化应用程序。我创建了一个新的测试项目。我想将功能文件和 Cucumber runner 类保存在不同的文件夹中,并将所有胶水代码保存在另一个文件夹中。

@CucumberOptions下如何指定特征文件路径?

项目文件夹结构如下:

Project-2
|-src
  |-test
    |-java
      |-mypackage
        |-CucucmberRunner.java
|-resources
      |-MyFeature.feature

Project-1
|-src
  |-test
    |-java
      |-mypackage
        |-MyFeatureTest.java

我尝试提供 "@CucumberOptions(features = "Project-2/resources/MyFeature.feature" ) 但它正在抛出 NoSuchMethodError

有人可以帮忙吗!

【问题讨论】:

  • 提供有关您收到错误的方法的详细信息以及您是否使用 maven 或 gradle 或其他任何东西进行依赖管理?
  • 谁能帮我解决 cucumber-jvm 上的这个问题

标签: java junit bdd cucumber-jvm gherkin


【解决方案1】:

在 Project-2 上添加 Project-1 依赖,即在运行时,当您执行黄瓜测试时,Project-1 的测试类应该在类路径中可用。

检查mvn dependency:tree 输出并查找黄瓜依赖项。所有的依赖都是相同的版本,即 cucumber-core、cucumber-junit 等。

【讨论】:

  • 我使用 maven 和 pom.xml 只有 jar 依赖项,我在 java 构建路径下添加了项目依赖项,但没有用它会抛出如下错误 java.lang.NoSuchMethodError: cucumber.runtime .RuntimeOptionsFactory.(Ljava/lang/Class;[Ljava/lang/Class;)V at cucumber.api.junit.Cucumber.(Cucumber.java:59)
  • 感谢 Bhushan,我还注意到该功能无法识别胶水代码,在故事情节和实现下方 Given Iam 使用用户名密码登录 @Given("^Iam login with username password$")
  • 我认为您的项目 1 的测试类不在类路径中。因此你得到这个错误。请提供您如何在项目 2 中定义项目 1 的依赖关系的信息。
  • 不山我已在答案部分附上截图
【解决方案2】:

Bhushan 请点击Project Folders Structure的链接

【讨论】:

    猜你喜欢
    • 2018-10-20
    • 2017-04-16
    • 2016-08-24
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    相关资源
    最近更新 更多