2009-07-22 9 views
0

Ich verwende DBUnit, um eine Spring/Hibernate Persistenz zu testen.DBUnit: Wie wird nur bei einem Fehler aktualisiert?

ich einen abstrakten Test:

public abstract class AbstractTestCase extends 
    AbstractTransactionalDataSourceSpringContextTests { 

    @Override 
    protected String[] getConfigLocations() { 
     return new String[] { 
       "classpath:/applicationContext.xml", 
       "classpath:/testDataSource.xml" }; 
    } 
    @Override 
    protected void onSetUpInTransaction() throws Exception { 
     DataSource dataSource = jdbcTemplate.getDataSource(); 
     Connection con = DataSourceUtils.getConnection(dataSource); 

     boolean validateSchemaExists = true; 
     IDatabaseConnection dbUnitCon = new DatabaseConnection(con, 
       "MHADB_TEST", validateSchemaExists); 

     DatabaseConfig dbUnitConConfig = dbUnitCon.getConfig(); 
     dbUnitConConfig.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, 
       new OracleDataTypeFactory()); 

     boolean enableColumnSensing = true; 
     boolean enableDTDMetadata = false; 
     IDataSet dataSet = new FlatXmlDataSet(new File(
       "./src/test/resources/mhadb-dataset.xml"), 
       enableDTDMetadata, 
       enableColumnSensing); 
     try { 
      DatabaseOperation.CLEAN_INSERT.execute(dbUnitCon, dataSet); 
     } finally { 
      DataSourceUtils.releaseConnection(con, dataSource); 
     } 
    } 
} 

Aber immer, wenn ich einen Test durchführen, aktualisieren Sie es die DB die dataSet vor jeder Testmethode agains, die sehr sehr lang und sehr nicht schön, denke ich.

Wie kann ich nur bei einem Fehler neu laden/aktualisieren?

S.S .: Wie viel kostet der Code?

Antwort

0

fand ich einen Weg, um die Tests zu beschleunigen, dachte auch das Verhalten immer noch nicht wie erwartet ist (Refresh auf FAIL):

dbUnitConConfig.setFeature(DatabaseConfig.FEATURE_BATCHED_STATEMENTS, 
      true); 
Verwandte Themen