我正在研究Web whatsapp自动化,以便使用selenium-maven-cucumber-testng进行练习。我有以下问题。
预期:我有很多功能文件,并且我想要一个接一个地运行所有功能文件,如下所示:
获取第一个功能文件->打开浏览器->运行功能文件中提到的步骤->关闭浏览器。获取第二个功能文件->打开浏览器->运行功能文件中提到的步骤->关闭浏览器,依此类推。
结果:当前所有功能文件都在运行和传递。但是浏览器只打开一次,即
打开浏览器->运行功能文件1,功能文件2等->关闭浏览器。
我要按照“预期”中的说明运行。
我的Testng: testng.xml
我的RunnerClass:
我的钩子:
答案 0 :(得分:0)
BeforeTest
和AfterTest
仅运行一次,因为testng.xml中只有一个test
块。一种方法是为每个功能文件创建单独的运行器,并具有单独的test
块。
<test name="Feature_File_1">
<classes>
<class name="Runner1"/>
</classes>
</test>
<test name="Feature_File_2">
<classes>
<class name="Runner2"/>>
</classes>
</test>
也在当前运行器类中删除junit注释@RunWith
。
答案 1 :(得分:0)
您需要将TestNG挂钩更改为Cucumber挂钩。 这是为什么? 因为您想在问题中阐述每个场景后关闭浏览器。
请参见以下内容:
import cucumber.api.java.After;
import cucumber.api.java.Before;
public class Hooks {
@Before
public void beforeScenario(){
System.out.println("This will run before the Scenario");
}
@After
public void afterScenario(){
System.out.println("This will run after the Scenario");
}
}