繁体   English   中英

Java Cucumber 说 0 个场景

[英]Java Cucumber says 0 scenarios

我正在尝试对黄瓜进行一些测试(以学习)我有以下内容:

myapplication.feature 与

Feature: test                                                                      
   Scenario: login
   Given open firefox and start app 
   When enter details    
   Then login happens

班级赛跑者:

package runnerPackage;

import org.junit.runner.RunWith;
import org.testng.annotations.Test;

import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)
@CucumberOptions(features="C:/Users/lucian.patrascu/workspace/tst/features/myapplication.feature",
glue={"stepdefinition"},dryRun = false)
public class Runner {
}

步骤定义:

public class test1 {

    WebDriver driver=new ChromeDriver();

    @Given("^open firefox and start app$")
    public void open_firefox_and_start_app(){
        System.setProperty("webdriver.chrome.driver", "F:\\chromedriver.exe");
        System.out.println("worked");
    }

    @When("^enter details$")
    public void enter_details(){
        driver.navigate().to("hi5.com");
    }
    @Then("^login happens$")
    public void login(){
        driver.findElement(By.xpath("//input[@id='signInBtn'][@tabindex='3']"));
    }
}

我先有 TestNG 和 Junit 库,然后我删除了 TestNg 和相同的结果。 我尝试了 @CucumberOptions(features=... ) 的各种路径,但它仍然说:

0 Scenarios
0 Steps
0m0.000s

你能提供建议吗,因为我找不到修复它的方法

也许你可以从这个简单的项目开始,然后检查你的差异在哪里。 它可能是路径中的拼写错误,或者根据您提供的输入我们无法知道的其他内容。

假设以下结构

/tmp/cuke/tst/features/myapplication.feature
/tmp/cuke/src/test/java/runnerPackage/Runner.java
/tmp/cuke/pom.xml

我的应用程序功能

Feature: test
    Scenario: login
        Given open firefox
        And start app
        When enter details
        Then login happens

跑步者.java

package runnerPackage;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
@CucumberOptions(
    features="/tmp/cuke/tst/features/myapplication.feature",
    glue={"stepdefinition"},
    dryRun = false
)
public class Runner {
}

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.suboptimal</groupId>
    <artifactId>cuke</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <dependencies>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>2.1.0</version>
        </dependency>
    </dependencies>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
</project>

运行 Cucumber Runner

cd /tmp/cuke
mvn test -Dtest=Runner

结果是

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running runnerPackage.Runner

1 Scenarios (1 undefined)
4 Steps (4 undefined)
0m0.021s
...

编辑基于提供的 Eclipse 项目。 测试应该由 TestNG 执行。 因此Cucumber runner 必须扩展cucumber.api.testng.AbstractTestNGCucumberTests

假设以下结构

/tmp/cuke/src/test/java/runnerPackage/RunnerTest.java
/tmp/cuke/features/myapplication.feature
/tmp/cuke/pom.xml

我的应用程序功能

Feature: test
    Scenario: login
        Given open firefox
        And start app
        When enter details
        Then login happens

RunnerTest.java

package runnerPackage;

import cucumber.api.CucumberOptions;
import cucumber.api.testng.AbstractTestNGCucumberTests;

@CucumberOptions(features = "features")
public class RunnerTest extends AbstractTestNGCucumberTests {
}

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.suboptimal</groupId>
    <artifactId>cuke</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <dependencies>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-testng</artifactId>
            <version>2.1.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>2.1.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.11</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <surefire.version>2.18.1</surefire.version>
    </properties>
</project>

运行测试

cd /tmp/cuke
mvn test

结果是

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running runnerPackage.RunnerTest
Configuring TestNG with:
org.apache.maven.surefire.testng.conf.TestNG652Configurator@6bf2d08e

1 Scenarios (1 undefined)
4 Steps (4 undefined)
0m0.018s
...

请删除选项dryRun = false

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM