当前位置: 首页 > 知识库问答 >
问题:

如何通过TestNG运行Jbehave类

亢仰岳
2023-03-14
scenario: Check the google search engine
Given : Open the google home page www.google.com
When : Enter test automation in search box
Then : Proper result should be displayed in results page

步骤类文件:

import org.jbehave.core.annotations.Given;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class GoogleSearchEngine {

    public static WebDriver driver;

    @Given("Open the google home page $url")
    public static void openUrl(String url) throws Exception {
        try {

            driver = new FirefoxDriver();
            driver.get(url);

        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    @When("Enter $searchKeyword in search box")
    public static void searchKeyword(String searchKeyword) throws Exception {
        try {

            driver.findElement(By.xpath(".//*[@id='gs_htif0']")).sendKeys(searchKeyword);
            driver.findElement(By.xpath(".//*[@id='tsf']/center/input[1]")).click();

        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    @Then("Proper result should be displayed in results page")
    public static void result() throws Exception {
        try {

            driver.quit();

        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }

}

然后我需要开发用于驱动故事文件的testrunner。

有人能帮助我使用TestNG框架创建一个测试运行器类文件吗?

共有1个答案

汪志业
2023-03-14

我最近不得不做一些类似的事情,并惊喜地发现它是NBD。有关描述如何设置JBehave的示例代码,请参见我对另一个SO JBehave问题的回答。从那里,只需为您的JBehave测试创建一个testNG套件文件,如下所示:

<test name="all JBehave tests">

    <packages>
        <package name="com.foo.tests.jbehave.test1"/>
        <package name="com.foo.tests.jbehave.test2"/>
        <package name="com.foo.tests.jbehave.test3"/>
    </packages>

</test>

请记住,JBehave的JUnitStory和JUnitStories使JBehave的东西看起来像JUnit的东西,所以从TestNG的角度来看,它只是运行JUnit的东西。要注意的一件事是在两者之间集成报告。

 类似资料:
  • 一些注意事项: 1。我最初使用的TestNG jar来自java项目中的maven repo。下面的所有方法都是用maven testNG jar和新的TestNG6.9.12下载进行测试的。 2。我可以从Eclipse中运行这个文件。只有当我尝试从命令行运行时才有问题。 3。最终目标是通过javafx应用程序按钮触发命令行来运行测试。如果提供的解决方案避免在cmd中键入绝对路径,因为应用程序将在

  • 我试图创建一起使用JBehave和TestNG的概念验证。我想做的是在多个线程中同时运行一个故事,以测试我的代码的线程安全性。 我有一个简单的类,它只做一件事,在给定的整数值上计算模7。我已经为这个类创建了一个简单的BDD测试。我已经按照JBehave“入门”文档中的描述设置了BDD测试。唯一的区别是,在我的JUnitStory文件中,我没有使用JUnit的@Test注释,而是使用了TestNG的

  • 我试图通过testng运行简单的Cucumber/Java测试。xml。 所以,我有testng。xml: 我用的是runner。类,在其中我将路径/选项/etc设置为功能文件、步骤和报告: 但是当我运行testng时。xml作为TestNG套件,它: 1) 通过我自己的设想, 但是 我做错了什么?

  • 默认情况下,我是这样运行故事测试的:**/*。故事路径中的故事 但是我不需要运行所有的故事,也不需要运行特定的故事,我需要运行特定的套件(包含所有测试的特定文件夹)。 在< code>SuiteTest**1**和< code>SuiteTest**2**中有不同的测试,我必须在不同的时间运行它们。 试图运行: 但这不起作用,它找不到故事。。。。。 提前感谢您的任何帮助。

  • 我已经用maven和testNG配置了eclipse,用我的pom配置了PF。xml如下: 我是runnong,在命令提示符下点击这个目录:D:\EclipseWorkspace\iON27Feb2013\iONAutomation\common 我的cmd控制台显示:

  • 我有一个TestNG XML,格式如下: 这个套件有两个类,每个类都有一些@Test方法。现在我想让我的套件以同样的顺序再运行3次,就像它运行一样,即所有的class1方法,然后是class2方法。我怎样才能做到这一点?我正在使用Selenium WebDriver和核心Java来运行我的自动化套件。