【问题标题】:What's the best way to drive same JUnit Class with different RemoteWebDrivers?用不同的 RemoteWebDriver 驱动相同的 JUnit 类的最佳方法是什么?
【发布时间】:2012-05-30 13:30:04
【问题描述】:

当时我使用 Class Parameterized 在不同的浏览器中驱动相同的测试。我不喜欢的是,测试不是并行运行的。

我也尝试过this,但它对我不起作用,但我承认我并没有真正理解我在做什么。

难道没有更好的方法吗?

Maven/Surefire 有没有办法完成这项工作?

有没有人有实现这一目标的经验?

【问题讨论】:

    标签: java maven selenium junit webdriver


    【解决方案1】:

    如果您想并行运行测试,JUnit 可能不是完美的工具。请改用TestNG。它已经知道如何并行运行测试,因此您不必担心这一点。

    要为不同的浏览器配置测试,请遵循以下方法:

    public abstract BaseBrowserTests {
         public abstract WebDriver getDriver();
    
         ... common tests...
    }
    
    public void ChromeTests {
         ... implement getDriver() to connect to Chrome ...
    
         ... you can add specific Chrome tests here ...
    }
    

    【讨论】:

    • 并行运行 JUnit 测试与 Mave/Surefire 配合得很好,所以这不是我担心的。但为了确保跨平台兼容性,我必须在不同的浏览器(FF、IE、...)中运行相同的类,这就是当时的问题
    • 经过 5 分钟的调查,我决定改用 TestNG,谢谢
    • 如果您将测试分组到各个类,有没有一种好方法可以在方法之间传递驱动程序?
    • 在这种情况下,您应该使用某种形式的依赖注入。如果您的测试很简单,请使用惰性初始化创建一个全局变量。 blog.pdark.de/2010/03/04/java-tricks-lazy-initialization
    • 我想到了一个抽象 TestClass 中的 DataProvider,它提供了某种 WebDriverPool 和各种测试运行的配置
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    相关资源
    最近更新 更多