Tag: cucumber jvm

如何在黄瓜jvm场景之间传递变量和值

我有两个场景A和B.我在一个变量中存储’A’场景的字段输出的值。 现在我必须在场景’B’中使用该变量。 如何在Cucumber Java中将变量及其值从一个场景传递给另一个场景

如何将cucumber.api.Datable转换为List ,并在数据表中包含2个以上的col

Gherkin声明是: And Instruments,Shareprice,Quantities to be added are |name |sal |address| |xyz |100 |Greek | |abc |200 |Italy | 步骤def是: @Given(“My emp details are $”) public void my_emp_details_are(DataTable arg1) throws Throwable { List lstemp= arg1.asList(EMP.class); } 生成exception:cucumber.runtime.CucumberException:没有这样的字段datastructure.EMP.emps EMP是3个领域的class级: 嘿,我是Java新手我看过asList()文档我不理解公共列表asList(Class itemType) 类型参数:T – 列表项的类型参数:itemType – 列表项的类型

java – JUnit测试失败钩子上的黄瓜

我们使用Cucumber-JVM来编写验收测试脚本,使用JUnit来执行它们(通过JUnit Cucumber运行器)。 由于这些测试涉及Selenium WebDriver,我希望能够在我的测试失败时获取屏幕截图(我有代码)。 如果我只是添加一个WebDriver onException钩子,断言失败时将不会截取屏幕截图。 我希望能够向Cucumber运行器添加JUnit执行侦听器,但API似乎不支持此function(Cucumber.class上没有addListener方法)。 有人可以帮忙吗? 谢谢团队。

cucumber-jvm步骤定义java

如何在其他项目中重用Cucumber-JVM步骤定义来测试一些典型的Web操作。 关键是我已经使用典型场景动作的步骤定义实现创建了一些Java项目,例如: When I follow the link “*some_link*” Then I should see following content “*some_content*” on page 我想在其他项目中重用这些定义(包括在类路径中),只是为了编写自己的简单场景。 但是当我运行场景(作为JUnit测试)时,Cucumber无法找到步骤定义。 当我尝试扩展Step Definitions类时,它给了我一个错误,我无法扩展Step Definition类。 那么,是否可以重复使用步骤定义,如果是这样的话?

AfterAll全球钩黄瓜-jvm

我在集成测试中使用了cucumber-jvm ,我需要在所有场景完成后执行一些代码,只需执行一次。 在仔细阅读了这样的post并回顾了这个报道的问题之后 ,我完成了这样的事情: public class ContextSteps { private static boolean initialized = false; @cucumber.api.java.Before public void setUp() throws Exception { if (!initialized) { // Init context. Run just once before first scenario starts Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { // End context. Run just once after all scenarios are finished } }); […]

Cucumber JVM:测试是否抛出了正确的exception

我有点惊讶,我无法在网上找到这个问题的答案。 无论如何,当使用Junit来测试抛出正确的exception时,我会做这样的事情: @Test(expected = NullPointerException.class) public void testExceptionThrown(){ taskCreater.createTask(null); } 正如您在上面所看到的,如果抛出exception,它是一种非常优雅的测试方法,但是当使用黄瓜JVM时,如何实现同样的优雅呢? 我的测试现在看起来像这样: @Then(“the user gets a Null pointer exception$”) public void null_exception_thrown() { boolean result = false; try { taskCreater.createTask(null); } catch (NullPointerException e) { result = true; } assertTrue(result); } 这太丑了!!

SessionNotFoundException:会话ID为空。 调用quit()后使用WebDriver? (selenium)

我正在尝试使用Cucumber / Java编写一些selenium自动UI测试。 如果我的function文件中只有一个测试,一切正常。 但是如果我添加第二个测试,我会在driver.get()上收到此错误: org.openqa.selenium.remote.SessionNotFoundException: Session ID is null. Using WebDriver after calling quit()? Build info: version: ‘2.51.0’, revision: ‘1af067dbcaedd7d2ab9af5151fc471d363d97193’, time: ‘2016-02-05 11:20:57’ 基本上,我在一个包中初始化InitializeWebdriver类上的webdriver变量,然后在其他(步骤定义)类中引用它。 我确实将下面列出的步骤定义作为InitializeWebdriver类的一部分,并且它工作正常(直到移到另一个类中的不同步骤。所以我将该步骤移动到CommonSteps.java文件以查看它是否然后它会失败,它就会失败。所以现在我只是卡住了。我想在if (driver.equals(null))中做一个if (driver.equals(null))并且如果已经初始化那么做一个不同的动作,但我不知道我知道其他行动会是什么。 这是我的代码: tests.feature Feature: Two tests Background: Given I navigate to “http://www.google.com” Scenario: Test one When something happens Scenario: Test two When something else happens InitializeWebDriver.java public class […]

黄瓜测试Spring Boot应用程序

有谁知道我在哪里可以找到一个示例应用程序,其中Cucumber用于通过Gradle测试Spring Boot应用程序? 我可以在cmd行上启动服务器并使用我的IDE运行测试,但我需要能够在CI服务器上以编程方式运行它们。 我在这里看到了答案,但该解决方案对我不起作用,很可能是因为我有多个步骤def文件。 这是我的设置 build.grade(在另一个问题中提到) testCompile (“org.springframework.boot:spring-boot-starter-test”, … “info.cukes:cucumber-spring:${cucumberVersion}”) CucumberTest.java @RunWith(Cucumber.class) @CucumberOptions(format = “pretty”, features = “src/test/resources”) public class CucumberTest{ } AbstractSpringTest.java(由所有StepDef文件扩展) @SpringApplicationConfiguration(classes = Application.class) @RunWith(SpringJUnit4ClassRunner.class) @Ignore public abstract class AbstractSpringTest { … } 它在启动时没有做正确的事情,因为它1.尝试初始化我的步骤def文件和2.我的应用程序没有启动,黄瓜测试无法建立连接。 谢谢。 编辑:或者,如果有人可以告诉我如何使用gradle启动和停止应用程序,那也是可以接受的。

如何从命令行运行黄瓜文件

我的黄瓜function文件位于我当地的下方位置: C:\ProjectWork\Workspace\Cucumber\DIT_Cucumber\src\cucumber\featureOne.feature 和Junit jar位于以下位置: C:\DurgeshProjectWork\Workspace\JarFiles\junit-4.11.jar 当我尝试了下面的几个命令从命令提示符执行function文件时,但总是得到相同的错误 Could not fine class 以下是我使用的命令:命令1: C:\>java -cp C:\ProjectWork\Workspace\JarFiles\junit-4.11.jar org.junit.runner.JUnitCore C:\DurgeshProjectWork\Workspace\Cucumbe r\DIT_Cucumber\bin\cucumber\featureOne.feature 命令2: C:\ProjectWork\Workspace\Cucumber\DIT_Cucumber\src\cucumber>java -cp C:\ProjectWork\Workspace\JarFiles\junit-4.11.jar org .junit.runner.JUnitCore featureOne.feature 你能帮我从命令行运行这个function文件吗? 提前致谢。

使用System.getProperty()获取@CucumberOptions标记属性

我正在Eclipse中运行一个maven项目来进行我的Cucumber测试。 我的测试运行器类看起来像这样: @RunWith(Cucumber.class) @CucumberOptions( tags = { “@Now” }, // tags = { “@Ready” }, // tags = { “@Draft” }, features = { “src/test/java/com/myCompany/FaultReporting/Features” }, glue = { “com.myCompany.myApp.StepDefinitions” } ) public class RunnerTest { } 我不想将标签硬编码到测试运行器中,而是希望使用.command文件传递它们。 (即使用System.getProperty(“cucumber.tag”) 但是,当我将代码行添加到上面的测试运行器时,我收到错误: @RunWith(Cucumber.class) @CucumberOptions( tags = { System.getProperty(“cucumber.tag”) } // tags = { “@Now” }, // tags […]