我正在尝试从 Java 类运行 JUnit 测试:
JUnitCore core = new JUnitCore();
core.addListener(new RunListener());
core.run(classToRun);
问题是我的 JUnit 测试需要一个当前在 JUnit 测试本身中硬编码的数据库连接。
我正在寻找的是一种以编程方式(上图)运行 JUnit 测试的方法,但将数据库连接传递给它,这是我在运行测试的 Java 类中创建的,而不是在 JUnit 类中硬编码。
基本上像
JUnitCore core = new JUnitCore();
core.addListener(new RunListener());
core.addParameters(java.sql.Connection);
core.run(classToRun);
然后在 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);
}
我知道@Parameters,但它在这里似乎不适用,因为它更适合以不同的值多次运行相同的测试用例。我希望我的所有测试用例共享一个数据库连接,我通过配置文件传递给我的 java 客户端,然后运行这些测试用例(也通过配置文件传递)。
这可能吗?
PS我明白这似乎是一种奇怪的做事方式。