我创建了一些黄瓜测试步骤和一个小的黄瓜测试用例,我用JUnit运行,如下所示:
@RunWith(Cucumber.class)
public class FuelCarTest {
//executs cucumber steps in the class FuelCarSteps
}
黄瓜功能文件现在会自动从类路径位置加载,src/main/resources/<package-name>/*.feature
我想知道如何告诉 Cucumber 我的功能文件的位置,因为我需要它从类路径之外的位置加载它们(例如 data//)。
我找到了解决方案,
有@Cucumber.选项注释,在设置报告输出格式和位置的同时,它还允许设置功能文件的位置。
@Cucumber.Options(
format = {
"pretty",
"html:target/cucumber-html-report",
"json-pretty:target/cucumber- report.json"
},
features="features/"
)
我已将所有功能文件放在test/resources/features
中,并使用类路径添加了我的功能文件位置。这是我的黄瓜运行文件。
@RunWith(Cucumber.class)
@CucumberOptions(
monochrome = true,
features = "classpath:features",
plugin = {"pretty", "html:target/cucumber-reports",
"json:target/cucumber.json"
}
)
public class MyTests
{
}
这将选取文件夹功能中的所有功能文件。如果您想要一个子文件夹,您也可以通过替换如下所示的行来添加它。
features = "classpath:features/DEV"
如果只有一个特定的功能文件,它应该是这样的
features = "classpath:features/DEV/SmokeTests.feature"
您可以在此处指定文件夹中的功能文件、标记名称和测试输出。
@RunWith(Cucumber.class)
@CucumberOptions(features="src/Login.feature",
format = {"pretty", "html:target/report/",
"json:target/report/cucu_json_report.json",
"junit:target/report/cucumber_junit_report.xml",}
tags ={"@ra1, @ra2"})
@CucumberOptions而不是@Cucumber。
@RunWith(Cucumber.class)
@CucumberOptions(
format = "pretty",
tags = {"~@Ignore"},
features = "src/test/resources/com/" //refer to Feature file
)
public class CucumberIT { }
此处功能关键字,表示功能文件夹的路径示例:位于桌面中的"我的功能文件"文件夹
所以功能关键字值 feature="C:\Users\sanjay\Desktop\features"
@RunWith(Cucumber.class)
@CucumberOptions(
features = "C:\Users\sanjay\Desktop\features"
,glue={"com.stepDefination"}
,monochrome = false,
format = {"pretty", "html:target/Destination"}
)
public class TestRunner {
}