Pass command line arguments to JUnit test case being run programmatically

Posted by __nv__ on Stack Overflow See other posts from Stack Overflow or by __nv__
Published on 2010-05-21T17:24:22Z Indexed on 2010/05/21 17:40 UTC
Read the original article Hit count: 131

Filed under:
|
|

I am attempting to run a JUnit Test from a Java Class with:

    JUnitCore core = new JUnitCore();
    core.addListener(new RunListener());
    core.run(classToRun);

Problem is my JUnit test requires a database connection that is currently hardcoded in the JUnit test itself.

What I am looking for is a way to run the JUnit test programmatically(above) but pass a database connection to it that I create in my Java Class that runs the test, and not hardcoded within the JUnit class.

Basically something like

    JUnitCore core = new JUnitCore();
    core.addListener(new RunListener());
    core.addParameters(java.sql.Connection);
    core.run(classToRun);

Then within the classToRun:

@Test
Public void Test1(Connection dbConnection){
    Statement st = dbConnection.createStatement();
    ResultSet rs = st.executeQuery("select total from dual");
    rs.next();
    String myTotal = rs.getString("TOTAL");
    //btw my tests are selenium testcases:)
    selenium.isTextPresent(myTotal);
}

I know about The @Parameters, but it doesn't seem applicable here as it is more for running the same test case multiple times with differing values. I want all of my test cases to share a database connection that I pass in through a configuration file to my java client that then runs those test cases (also passed in through the configuration file).

Is this possible?

P.S. I understand this seems like an odd way of doing things.

© Stack Overflow or respective owner

Related posts about junit4

Related posts about selenium-rc