DBUnit: refresh seulement sur échec

DBUnit: refresh seulement sur échec - Java - Programmation

Marsh Posté le 22-07-2009 à 11:50:58    

Je me suis fait un test abstrait pour mes tests de persistance avec DBUnit  

Code :
  1. public abstract class AbstractTestCase extends
  2.        AbstractTransactionalDataSourceSpringContextTests {
  3.  
  4.        @Override
  5.        protected String[] getConfigLocations() {
  6.                return new String[] {
  7.                                "classpath:/applicationContext.xml",
  8.                                "classpath:/testDataSource.xml" };
  9.        }
  10.        @Override
  11.        protected void onSetUpInTransaction() throws Exception {
  12.                DataSource dataSource = jdbcTemplate.getDataSource();
  13.                Connection con = DataSourceUtils.getConnection(dataSource);
  14.  
  15.                boolean validateSchemaExists = true;
  16.                IDatabaseConnection dbUnitCon = new DatabaseConnection(con,
  17.                                "MHADB_TEST", validateSchemaExists);
  18.  
  19.                DatabaseConfig dbUnitConConfig = dbUnitCon.getConfig();
  20.                dbUnitConConfig.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY,
  21.                                new OracleDataTypeFactory());
  22.  
  23.                boolean enableColumnSensing = true;
  24.                boolean enableDTDMetadata = false;
  25.                IDataSet dataSet = new FlatXmlDataSet(new File(
  26.                                "./src/test/resources/mhadb-dataset.xml" ),
  27.                                enableDTDMetadata,
  28.                                enableColumnSensing);
  29.                try {
  30.                        DatabaseOperation.CLEAN_INSERT.execute(dbUnitCon, dataSet);
  31.                } finally {
  32.                        DataSourceUtils.releaseConnection(con, dataSource);
  33.                }
  34.        }
  35. }


 
Le problème avec ce code, c'est qu'il recharge la base avant chaque test. C'est long, et ça me semble crâde.
J'aurais préféré recharger la base au lancement de la baterrie de tests, ou au moins de la classe de tests, et ensuite uniquement sur échec.
Vous avez des idées ?  [:transparency]  
 
J'avoue que ma connaissance Spring est limitée...
 

Spoiler :

Et sinon à quel point il pue mon code ? [:cupra]


Message édité par brisssou le 22-07-2009 à 13:51:35

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 22-07-2009 à 11:50:58   

Reply

Marsh Posté le 22-07-2009 à 14:34:40    

bon, avec un coup de ça

Code :
  1. dbUnitConConfig.setFeature(DatabaseConfig.FEATURE_BATCHED_STATEMENTS, true);


ça améliore déjà grandement la vitesse d'exécution des tests.

 


Comme quoi j'arrive à lire la doc en fait...


Message édité par brisssou le 22-07-2009 à 14:35:20

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed