以黄瓜指定要素文件位置

时间:2012-12-13 13:40:22

标签: cucumber cucumber-jvm cucumber-junit

我已经创建了一些黄瓜测试步骤和一个小黄瓜测试用例[1],我使用junit运行,如下所示:

@RunWith(Cucumber.class)

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

黄瓜功能文件现在从src/main/resources/<package-name>/*.feature

中的类路径位置自动加载

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

[1] http://thomassundberg.wordpress.com/2011/11/16/testing-a-web-service-with-soapui-junit-maven-and-cucumber/#comment-714

5 个答案:

答案 0 :(得分:6)

我找到了解决方案,

有@ Cucumber.Options注释,在设置报告输出格式和位置之间,还允许设置要素文件的位置。

@Cucumber.Options(
    format = {
        "pretty",
        "html:target/cucumber-html-report",
        "json-pretty:target/cucumber- report.json"
    },
    features="features/"
)

答案 1 :(得分:4)

我已将所有要素文件放在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"

答案 2 :(得分: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"})

答案 3 :(得分:0)

您可以使用@CucumberOptions而不是@ Cucumber.Options

@RunWith(Cucumber.class)
@CucumberOptions(
    format = "pretty",
    tags = {"~@Ignore"},
    features = "src/test/resources/com/"  //refer to Feature file
)
public class CucumberIT {  }

答案 4 :(得分:0)

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

所以功能关键字值功能=&#34; C:\ Users \ sanjay \ Desktop \ features&#34;

&#13;
&#13;
@RunWith(Cucumber.class)
@CucumberOptions(
		features = "C:\\Users\\sanjay\\Desktop\\features"
		,glue={"com.stepDefination"}
		,monochrome = false,
				
				
				format = {"pretty", "html:target/Destination"} 
		
		)
public class TestRunner {

}
&#13;
&#13;
&#13;