title: FAILED CONFIGURATION: @AfterMethod tearDown Even the driver is checking for null before quitting
body: <p>I have code like below...</p>
  
  <pre><code>@BeforeClass(alwaysRun = true)
  public void setup() throws InterruptedException {
      driver = DriverFactory.getDriverInstance();
      softwarepage = new SoftwarePage(driver);
      loginpage = new LoginPage(driver);
      projectpage = new ProjectPage(driver);
  }
  
  @Test(description="Create Software",dataProviderClass=AddSoftwareProvider.class,dataProvider="testCasesAddSoftware")
  public void createSoftware(AddSoftwareBean softwareBean) throws InterruptedException
  {
      softwareName = "AutoSoftware"+DataGenerator.randomNumber();
      log.info("Create Software test case Started...");
      assertEquals(true, loginpage.gotoSignPage());
      assertEquals(true,loginpage.logintoPortal(PropertyMap.getInstance().getmySSISSGName(), PropertyMap.getInstance().getmySSISSGPassword(), "myToday"));
      //assertEquals(true,softwarepage.createSoftware(softwareName));
      //assertEquals(true,softwarepage.AddSoftwareDefault(softwareName, "Low"));
      assertEquals(true,softwarepage.AddSoftware(softwareBean));
  
  }
  </code></pre>
  
  <p>I am quitting the driver in teardown method like below, but before checking whether the driver is null or not... Even, then the above test case is not executing...</p>
  
  <pre><code>@AfterClass(alwaysRun = true)
  public void tearDown() {
      if (driver != null) {
          assertEquals(true,loginpage.logout());
          driver.quit();
          }
  }
  </code></pre>
  
  <p>in the softwarePage, the code is like this...</p>
  
  <pre><code>public SoftwarePage(WebDriver driver) {
          this.driver = driver;
      }
  @Override
  protected WebDriver getDriver() {
      return driver;
  }
  </code></pre>
  
  <p>Please help me in this... </p>
  
  <p>Edit: </p>
  
  <p>The full stack is here... The assertion is in logout method I have written...</p>
  
  <pre><code>FAILED CONFIGURATION: @AfterClass tearDown
  java.lang.AssertionError: expected [false[ but found ]true]
      at org.testng.Assert.fail(Assert.java:94)
      at org.testng.Assert.failNotEquals(Assert.java:494)
      at org.testng.Assert.assertEquals(Assert.java:123)
      at org.testng.Assert.assertEquals(Assert.java:286)
      at org.testng.Assert.assertEquals(Assert.java:296)
      at com.cigital.myssi.automation.commons.Verification.assertEquals(Verification.java:33)
      at com.cigital.myssi.automation.tests.SoftwareTest.tearDown(SoftwareTest.java:69)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
      at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564)
      at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
      at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
      at org.testng.internal.TestMethodWorker.invokeAfterClassMethods(TestMethodWorker.java:225)
      at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:114)
      at org.testng.TestRunner.privateRun(TestRunner.java:767)
      at org.testng.TestRunner.run(TestRunner.java:617)
      at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
      at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
      at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
      at org.testng.SuiteRunner.run(SuiteRunner.java:240)
      at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
      at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
      at org.testng.TestNG.runSuitesSequentially(TestNG.java:1197)
      at org.testng.TestNG.runSuitesLocally(TestNG.java:1122)
      at org.testng.TestNG.run(TestNG.java:1030)
      at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
      at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
      at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
  </code></pre>
  
  <p>EDIT: without assertion in tearDown method, this is what I am getting...</p>
  
  <pre><code>===============================================
      Default test
      Tests run: 0, Failures: 0, Skips: 0
  ===============================================
  
  
  ===============================================
  Default suite
  Total tests run: 0, Failures: 0, Skips: 0
  </code></pre>