无法找到.feature文件的相应java文件

时间:2014-04-09 07:49:05

标签: selenium ant cucumber-jvm cucumber-junit

我正在使用cucumber-jvm和junit framwork运行selenium。我根据我的要求修改了this示例。我需要通过ant文件运行测试,所以我创建了相应的ant文件,我的功能文件正在运行纠正,它还建议在cmd上实现@Given,@ When,@ Then等正则表达式,但我也是在java文件中创建这个步骤,并在我的测试文件中提供文件包在@ cucumber.option的glue参数中的路径。但它没有正确选择。

这是我的一些ant文件代码

  <target name="run" depends="compile">
    <mkdir dir="out/cucumber-junit-report"/>
    <java classname="cucumber.api.cli.Main" fork="true" failonerror="false">
        <classpath refid="compile.classpath"/>
        <arg value="--format"/>
        <arg value="junit:out/cucumber-junit-report.xml"/>
        <arg value="--format"/>
        <arg value="pretty"/>
        <arg value="--format"/>
        <arg value="html:out/cucumber-html-report"/>
        <arg value="src/test/resources"/>
    </java>

    <junitreport todir="out/cucumber-junit-report">
        <fileset dir="out">
            <include name="cucumber-junit-report.xml"/>
        </fileset>
        <report format="frames" todir="out/cucumber-junit-report"/>

    </junitreport>
</target>

这是我的测试类代码

 package com.cucumber;

 import com.cucumber.stepdefs.AddRecordStep;
 import cucumber.api.junit.Cucumber;
 import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
@Cucumber.Options(
    glue = {"com.cucumber.pageobjects"}
   )
 public class AddRecordTest {

  }

我检查了许多链接,每个链接都说使用胶水和定义路径,但我无法通过使用它来获得解决方案。以下是我的包结构图像

enter image description here

我被困在这里。任何帮助都是适当的。

1 个答案:

答案 0 :(得分:2)

看起来您的胶水参数不正确。看来你正在粘贴pageobject而不是stepdef。如果您的步骤定义在AddRecordStep类中,那么您的胶水参数应为glue = {"com.cucumber.stepdefs"}

另外请注意,如果你的stepdef与RunCukes在同一个或在子包中,那么黄瓜会自动为你找到它们,并且在这种情况下胶水参数变成可选的。