您能否看看我的问题并为解决问题提供任何建议。我使用 JUnit4 和 selenium 2 WebDriver。所以,我有课来运行 JUnit 套件:
@RunWith(Suite.class)
@Suite.SuiteClasses({className1.class, clasName2.class})
public class TestSuite
{
public static TestSuite suite()
{
TestSuite suite = new TestSuite();
suite.addTest(new JUnit4TestAdapter(className1.class));
suite.addTest(new JUnit4TestAdapter(className2.class));
return suite;
}
}
每个类都包含 @Test 方法并扩展了在 @BeforeClass 参数中设置的 BaseClass(通过 DesiredCapabilities)以在 BrowserStack 机器上运行套件:
public class MyTestBase{
static protected WebDriver driver;
private boolean acceptNextAlert = true;
protected static StringBuffer verificationErrors = new StringBuffer();
@BeforeClass
public static void setUp() throws Exception {
DesiredCapabilities capability = DesiredCapabilities.firefox();
capability.setPlatform(Platform.WINDOWS);
capability.setCapability("build", "JUnit - Sample");
capability.setCapability("acceptSslCerts", "true");
capability.setCapability("browserstack.debug", "true");
driver = new RemoteWebDriver(
new URL("http://username:accesskey@hub.browserstack.com/wd/hub"),
capability);
driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
}
/* other code */
}
那么,您能否帮我解决下一个问题:1)我需要创建配置文件并使用其参数在 BrowserStack 中的不同浏览器上运行我的 TestSuite。.xml 文件的任何示例将不胜感激。2) 还有我需要如何修改我的 TestSuite.class 以使用 .xml 文件参数。3)我的 TestSuite.class 由许多 .class 组成,每个都有 @Test 方法。每个类都扩展了 MyTestBase.class 注释 @BeforeClass 和 @AfterClass 所在的位置,但是当我运行 TestSuite 时,TestSuite 中的每个类都启动了新的浏览器,这对我来说是一个非常大的问题。我可以为TestSuite中所有类的所有@Test方法运行一次浏览器做什么。我知道@BeforeClass 适用于一个类中的所有@Test 方法,但是如果有可能的课程应该怎么办?在 TestNG 中有 @BeforeSuite 解决了这个问题。
抱歉,有这么多问题,但我已经尝试了很多但没有成功:(非常感谢!