9

我创建了一些黄瓜测试步骤和一个小黄瓜测试用例,我使用 JUnit 运行,如下所示:

@RunWith(Cucumber.class)

public class FuelCarTest {
    //executs cucumber steps in the class FuelCarSteps
}

Cucumber 功能文件现在自动从类路径位置加载,src/main/resources/<package-name>/*.feature

我想知道如何告诉黄瓜我的功能文件的位置,因为我需要它从类路径之外的位置(例如数据//)加载它们。

4

5 回答 5

9

我找到了解决方案,

有@Cucumber.Options 注解,在设置报告输出格式和位置的同时,它还允许设置特征文件的位置。

@Cucumber.Options(
    format = {
        "pretty",
        "html:target/cucumber-html-report",
        "json-pretty:target/cucumber- report.json"
    },
    features="features/"
)
于 2012-12-13T22:45:16.797 回答
6

我已将所有功能文件放入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 中的所有功能文件。如果您想要一个子文件夹,您也可以通过替换行来添加它,如下所示。

features = "classpath:features/DEV"

如果只有一个特定的功能文件,它应该是这样的

features = "classpath:features/DEV/SmokeTests.feature"

于 2016-08-02T02:59:54.200 回答
0

在这里,您可以从文件夹、标签名称和测试输出中指定功能文件。

 @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"})
于 2014-04-14T19:37:26.103 回答
0

您可以使用 @CucumberOptions 代替 @Cucumber.Options

@RunWith(Cucumber.class)
@CucumberOptions(
    format = "pretty",
    tags = {"~@Ignore"},
    features = "src/test/resources/com/"  //refer to Feature file
)
public class CucumberIT {  }
于 2014-07-20T16:58:15.457 回答
0

此处功能文件文件夹路径的功能关键字示例:位于桌面的我的功能文件文件夹

所以特性关键字值特性=“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 {

}

于 2017-02-10T20:10:50.700 回答