Отменить IDatabaseTester setDataSet () - PullRequest
       31

Отменить IDatabaseTester setDataSet ()

0 голосов
/ 29 апреля 2018

У меня есть два независимых теста JUnit, которые используют IDatabaseTester для загрузки схемы, а затем данные из XML.

При индивидуальном запуске все идет хорошо. Но при последовательном запуске второй тест JUnit завершается неудачно, потому что «имя TABLE уже существует».

Я проследил, что базу данных HSQLDB пытаются загрузить дважды . Конечно, он потерпит неудачу во второй раз.

Я посмотрел на определение IDatabaseTester и, хотя существуют методы для установки базы данных, я не смог найти один, чтобы "сбросить" ее.

Как правильно его разгрузить?

1 Ответ

0 голосов
/ 01 мая 2018

Отвечая на собственный вопрос, если это кому-то поможет:

import org.apache.ddlutils.Platform;
import java.sql.Connection;
import org.apache.ddlutils.model.Database;

Platform platform = PlatformFactory.createNewPlatformInstance(HSQLDB_JDBC_DRIVER, HSQLDB_JDBC_URL);
Database database = jdbcModelReader.getDatabase(hsqldbConnection, null);
platform.dropTables(database, true);
...