2015-06-22 1 views
1

Я пытался создать тестовую базу данных и очистить ее после тестирования, но она не удаляется. И, следовательно, бросая exception- имя объект уже существует: USER в Обращении ... Вот мой код в BeforeClass и AfterClass annotations-HSQLDB: Как обрезать базу данных после тестирования?

@BeforeClass 
public static void initialize() throws Exception { 
    databaseTester = new JdbcDatabaseTester(org.hsqldb.jdbcDriver.class 
    .getName(), "jdbc:hsqldb:file:testdatabase", "sa", ""); 
    createTables(databaseTester.getConnection().getConnection()); 

    String inputXml = "<dataset>" 

      +"<user UID=\"9999\" NAME=\"XYZ\" PHONE=\"9999999999\" PASSWORD=\"qwerty\" SALT_KEY=\"0\" DEVICE_UUID=\"99999\" LID=\"1\" USER_TYPE=\"1\" OTP_STATUS=\"A\" STATUS=\"0\" POSTAL_ADDRESS=\"0\" CREATE_USER=\"0\" UPDATE_USER=\"0\" />" 
      +"<user UID=\"9998\" NAME=\"ABC\" PHONE=\"9999999998\" PASSWORD=\"qwerty\" SALT_KEY=\"0\" DEVICE_UUID=\"99998\" LID=\"1\" USER_TYPE=\"1\" OTP_STATUS=\"A\" STATUS=\"0\" POSTAL_ADDRESS=\"0\" CREATE_USER=\"0\" UPDATE_USER=\"0\" />" 
      +"<user_category UCID=\"9999\" UID=\"0\" DEVICE_UUID=\"77777\" CID=\"7\" CREATE_USER=\"0\" UPDATE_USER=\"0\" />" 

        + "</dataset>"; 

    IDataSet dataSet = new FlatXmlDataSetBuilder().build(new StringReader(inputXml)); 
    databaseTester.setDataSet(dataSet); 
    databaseTester.setSetUpOperation(DatabaseOperation.CLEAN_INSERT); 
    databaseTester.setTearDownOperation(DatabaseOperation.DELETE_ALL); 
    databaseTester.onSetup(); 

} 

@AfterClass 
public static void cleanUp() throws Exception { 
    databaseTester.onTearDown(); 
    databaseTester = null; 
} 

Это не получает автоматически удаляются, а мне нужно вручную удалить содержимое текстовый файл, созданный после теста.

+0

Не совсем ответ, но, возможно, вы могли бы использовать базу данных в оперативной памяти. Я заметил, что это может вести себя немного иначе, хотя (но я забыл подробности, извините). – Marvin

+0

Я использую базу данных в памяти. – Maverick

+0

Вы используете файловую базу данных. Я имел в виду 'jdbc: hsqldb: mem: testdatabase', который будет писать (и, таким образом, оставить) информацию в вашей файловой системе. – Marvin

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^