Я пытаюсь запустить JUnit Test из Java-класса с помощью
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);
Затем в классеToRun:
@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-клиенту, который затем запускает эти тестовые примеры (также передается через файл конфигурации).
Возможно ли это?
P.S. Я понимаю, что это кажется странным способом делать вещи.