我正在使用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 {
}
我检查了许多链接,每个链接都说使用胶水和定义路径,但我无法通过使用它来获得解决方案。以下是我的包结构图像
我被困在这里。任何帮助都是适当的。
答案 0 :(得分:2)
看起来您的胶水参数不正确。看来你正在粘贴pageobject而不是stepdef。如果您的步骤定义在AddRecordStep
类中,那么您的胶水参数应为glue = {"com.cucumber.stepdefs"}
另外请注意,如果你的stepdef与RunCukes在同一个或在子包中,那么黄瓜会自动为你找到它们,并且在这种情况下胶水参数变成可选的。