2015-12-22 87 views
2

已经尝试过几乎所有的解决方案,但仍然在这里丢失东西。黄瓜运行时无法获得结果。试图实施BDD

我已经创建了简单的JAVA程序,为黄瓜添加了功能文件和类。当我跑我得到的输出:

@Search方案概要:成功打开Goog​​le.com [90米# Open_Google.feature:40米 [36mGiven [0分[36mUser是空白页[0米 [ 36mWhen [0分[36mUser输入网址[0米 [36mThen [0分[36mGoogle网站应该打开[0米

0场景

0步骤

0m0.000s

特性文件:

Feature: Open Google WebSite 

@Search 
Scenario Outline: Successful Open Google.com 
Given User is with blank page 
When User enter URL 
Then Google WebSite should open 

测试运行器类:

import org.junit.runner.RunWith; 

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


@RunWith(Cucumber.class) 
@CucumberOptions(

     features = "Feature" 

     ) 

public class TestRunner { 

} 

测试用例类:

public class cucumber_test { 

    public static WebDriver driver; 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 



     System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe"); 
     driver = new ChromeDriver(); 

     driver.get("http://www.google.com"); 
     driver.manage().window().maximize(); 

     System.out.println("Google open successfully"); 
    } 

} 

使用硒Webdriver,JAVA,Junit和黄瓜。

我也在做对吧?使用黄瓜是否正确?

回答

1

看起来跑步者无法找到你的功能文件。它是否位于资源?如果是,尝试引用整个类路径类似

import org.junit.runner.RunWith; 

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


@RunWith(Cucumber.class) 
@CucumberOptions(

    features = "classpath:com/yourgroup/yourartifact/cucumber/features" 

    ) 

public class TestRunner { 

} 

上面只是一个例子,当然你有不同的地方你的功能定位,以改变该类路径。

+2

感谢您的帮助,现在它说_ **没有在发现功能[classpath中:Cucumber_Sample /专题] ** –

1

您需要引用功能的位置和步骤定义。亚军应该是这个样子:

import org.junit.runner.RunWith; 

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


@RunWith(Cucumber.class) 
@CucumberOptions(
    features = {"path/to/features/"}, 
    glue = {"classpath:package.name.of.stepsDefinitions"}, 
) 

public class TestRunner { 

} 

注为功能文件路径表示,为胶水代码(步骤定义)的包符号

+0

我是否需要为stepsDefinitions创建任何其他文件? –

+0

同样的问题仍然存在。 –

+0

你能提供你的项目结构吗?我认为isba路径问题。现在只需一步定义文件就足够了。 – Dude

1

我相信你仍然面临同样的问题。你可以试试这个。

import org.junit.runner.RunWith; 

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


    @RunWith(Cucumber.class)@CucumberOptions(plugin = { 
    "pretty", "json:target/Open-Google-WebSite.json"}, 
    features = {"src/test/FeatureFilePackage"}, 
    glue = {"com.java.cucumber_test"}) 

    public class TestRunner { 

    } 
+0

谢谢,我得到的结果比以前好,但仍然有一些问题,请检查我更新的问题。 –

+1

哦,您没有创建步骤定义就是问题所在。当你运行runner文件时,它会创建步骤定义,你将所有的步骤定义复制到cucumber_test中并在每一步中写入代码。运行你的runner文件,你应该能够看到步骤定义函数控制台输出并复制到cucumber_test中。它将有待处理的异常。删除待处理的异常,并根据每个步骤放置代码。 –

+0

当然,我会尝试。谢谢。 –

0

看来你的测试是通过TestNG中未显示任何特定的错误运行我建议你从你的POM文件中删除TestNG的依赖运行测试(通过Junit的),你就可以看到具体的错误和解决它后,你将能够运行你的类容易

预期的错误可能是“重复步认定中的”