Я пытаюсь запустить тест JUnit из класса 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);
Тогда в классе ClassRoRun:
@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 Я понимаю, это кажется странным способом ведения дел.