package baseClasses;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Parameters;
public final class InitSetUp {
private WebDriver driver;
private static String baseDriverPath="D:\\driver\\";
public WebDriver getDriver() {
return driver;
}
private void setDriver(String browserName, String url) {
switch(browserName) {
case "Chrome" : {
System.out.println("Setting chorme driver please wait");
driver = initChromeDriver(url);
}
case "Firefox" :{
System.out.println("Setting firefox driver please wait");
driver = initFirfoxDriver(url);
}
case "IE" : {
}
}
}
private WebDriver initChromeDriver(String url) {
System.out.println("initializing chorme driver please wait");
System.setProperty("webdriver.chrome.driver", baseDriverPath + "chromedriver.exe");
WebDriver driver = new ChromeDriver();
System.out.println("Navigating to given url please wait");
driver.navigate().to(url);
return driver;
}
private WebDriver initFirfoxDriver(String url) {
System.out.println("initializing Firefox driver please wait");
System.setProperty("webdriver.firefox.driver", baseDriverPath + "geckodriver.exe");
WebDriver driver = new ChromeDriver();
System.out.println("Navigating to given url please wait");
driver.navigate().to(url);
return driver;
}
@Parameters({"browserName","openURL"})
@BeforeClass
public void initBorwser(String browserName,String openURL) {
System.out.println("Initializing Class..");
try {
setDriver(browserName, openURL);
} catch (Exception e) {
System.out.println("Error....." + e.getStackTrace());
}
}
@AfterClass
public void tearDown() {
System.out.println("Quiting please wait");
driver.quit();
}
}
And here is another Class
package testClasses;
import org.openqa.selenium.WebDriver;
import org.testng.annotations.Test;
import baseClasses.InitSetUp;
public class OpenTest {
private WebDriver driver;
public OpenTest() {
System.out.println("In Open Test");
InitSetUp baseclass= new InitSetUp();
driver = baseclass.getDriver();
}
@Test
public void openBroser() {
System.out.println("TEST ONE");
}
}
And TESTNG XML--------
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name="TESTX" verbose="1" >
<parameter name="browserName" value="Firefox" />
<parameter name="openURL" value="google.com" />
<test name="TestOpen" >
<classes>
<class name="testClasses.OpenTest" />
<class name="baseClasses.InitSetUp" />
</classes>
</test>
</suite>
When I run the above XML in testNG it is not executing the methods @BeforeCLass and @AfterClass. Its shows the output as--
[RemoteTestNG] detected TestNG version 7.2.0 In Open Test TEST ONE
Your code is faulty... To answer your question why these: @beforeclass @afterclass aren't called, it is because you didn't extend the InitSetUp class to the OpenTest
so instead of public final class InitSetUp
change it to public class InitSetUp
And apply the inheritance here
instead of public class OpenTest
change it to public class OpenTest extends InitSetUp
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.