Question

J'utilise DBUnit pour tester un printemps / Hibernate persistance.

J'ai créé un test abstrait:

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);
        }
    }
}

Mais chaque fois que je lance un test, il rafraîchit la DB agains le DataSet avant chaque méthode d'essai, ce qui est assez longue et très agréable je pense pas.

Comment pourrais-je recharger / rafraîchir uniquement en cas d'échec?

P.S .: Combien le code téter?

Était-ce utile?

La solution

J'ai trouvé un moyen d'accélérer les essais, même pensé que le comportement est toujours pas comme prévu (rafraîchir le FAIL):

    dbUnitConConfig.setFeature(DatabaseConfig.FEATURE_BATCHED_STATEMENTS,
            true);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top