seleniumjunitselenium-rc

junit.framework.AssertionFailedError: No tests found in register


I'm having a problem getting this test case to work. Can anyone point me in the right direction? I know I'm doing something wrong, I just don't know what.

import org.junit.*;
import com.thoughtworks.selenium.*;
import org.openqa.selenium.server.*;

@SuppressWarnings("deprecation")

public class register extends SeleneseTestCase {

  Selenium selenium;
  private SeleniumServer seleniumServer;
  public static final String MAX_WAIT = "60000";
  public final String CRN = "12761";

  public void setUp() throws Exception {
    RemoteControlConfiguration rc = new RemoteControlConfiguration();
    rc.setAvoidProxy(true);
    rc.setSingleWindow(true);
    rc.setReuseBrowserSessions(true);

    seleniumServer = new SeleniumServer(rc);
    selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://google.com/");
    seleniumServer.start();
    selenium.start();
  }

  @Test
  public void register_test() throws Exception {
    //TESTS IN HERE
  }

  @After
  public void tearDown() throws Exception {
    selenium.stop();
    // Thread.sleep(500000);
  }
}

And I'm getting the following errors:

junit.framework.AssertionFailedError: No tests found in register
at jumnit.framework.TestSuite$1.runTest(TestSuite.java:97)

I'm stumped.


Solution

  • You can't both extend TestCase (or SeleniumTestCase) and also use JUnit annotations (@Test). The test runners for JUnit3 and 4 are different, and my assumption is when JUnit sees that you've extended TestCase, it uses the old runner.

    Remove the @Test annotation, and instead follow the old convention of naming your test with the word "test" prefixed, and that will fix it.

    public void testRegister() throws Exception {
      //TESTS IN HERE
    }
    

    PS. I'd recommend following more standard Java naming conventions, such as camel casing.

    PPS. Here's a link that explains this in more detail.