I am building tests using selenium. I was trying to follow some tutorial and also look at information here but I can not figure out why my test will not run correctly.
I have the following Test Set up class
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Parameters;
import java.util.Arrays;
public class TestSetUp {
private WebDriver driver;
public WebDriver getDriver() {
return driver;
}
private void setDriver(int type, String url) {
switch (type) {
case Config.FIREFOX_DRIVER:
System.out.println("Setting drivers for Firefox...");
driver = initFireFoxDriver(url);
break;
default:
System.out.print("invalid browser type");
}
}
private static WebDriver initFireFoxDriver(String url) {
System.out.println("Launching Firefox browser...");
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.navigate().to(url);
return driver;
}
@BeforeClass
public void initializeTestBaseSetup(int type, String url) {
try {
setDriver(1, "google.com");
} catch (Exception e) {
System.out.println("Error....." + Arrays.toString(e.getStackTrace()));
}
}
@AfterClass
public void tearDown() {
driver.quit();
}
@Test
public void startTests() {
System.out.println("Starting Tests...");
}
}
I then have a test class for log on here
public class LoginPageTest extends TestSetUp {
private WebDriver driver;
@Before
public void setUp() {
driver = getDriver();
}
@Test
public void verifyLoginInFunction() {
System.out.println("Log In functionality being tested...");
LoginPage loginPage = new LoginPage(driver);
Assert.assertTrue("The url is incorrect", loginPage.verifyURL());
Assert.assertTrue("Title did not match", loginPage.verifyLoginTitle());
Assert.assertTrue("Error message did not match", loginPage.verifySignIn());
Assert.assertTrue("\'Forgot Password?\' link is missing", loginPage.verifyForgotPassword());
Assert.assertTrue("Create Account setting not working", loginPage.verifyCreateAccount());
Assert.assertTrue("Additional Licence Key setting not working", loginPage.verifyLicencing());
HomePage homePage = loginPage.signIn(Config.STUDENT, Config.STUDENTPASS);
Assert.assertTrue("Login did not work", homePage.verifyURL());
}
}
My current out put is
Starting Tests...
Log In functionality being tested...
java.lang.NullPointerException
at verifyURL(LoginPage.java:20)
at verifyLoginInFunction(LoginPageTest.java:28)
.
.
.
Starting Tests...
Process finished with exit code -1
I did leave out the paths of my packages here but I can't figure out why the browser will not start up. It never does initializeTestBaseSetup so it doesn't get to the rest of the set up. Any help or links would be greatly appreciated.
FIXED: I needed to add and xml file to run rather then a test suite. Here is my testing.xml
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Page Object test example">
<parameter name="url" value="http://google.com/"/>
<parameter name="type" value="firefox"/>
<test name="sample test">
<classes>
<class name="LoginPageTest"/>
</classes>
</test>
</suite>