我想在使用@BeforeMethod注释的方法中打开测试页面,然后使用此浏览器实例进行测试,但现在setUp在一个浏览器中运行,测试TestNG打开一个新的浏览器实例。我怎么解决这个问题? 我从IntelliJ运行xml:
<suite name="all" verbose="1">
<test name="AllTests" preserve-order="true" time-out="7200000">
<classes>
<class name="test.ProjectCreationTests">
<methods>
<include name="testNewProject" />
</methods>
</class>
</classes>
</test>
我还尝试通过方法从IntelliJ运行测试,在这种情况下,它按预期工作,由安装程序打开的浏览器被测试使用。
UPDATE1: 我使用Selenide所以我不必初始化驱动程序。我认为我的测试中没有什么特别的,我不能分享整个,对不起。 baseURL在@BeforeClass方法中定义。
@Test
public void testNewProject() {
createProjectPage.tickProjectType(CreateProjectPage.ProjectTypeOptions.NEW_PROJECT);
createProjectPage.clickOnNext();
...
@BeforeMethod
public void beforeMethod() {
createProjectPage = open("/createProject.spr", CreateProjectPage.class);
}
答案 0 :(得分:0)
好的,我找到了答案。 @ TimeMethod,@ AfterMethod等在timeOut定义时在不同的线程中运行。资料来源:https://groups.google.com/forum/#!topic/testng-users/8XYt-El2_JU