DBUNIT: كيفية التحديث فقط على الفشل؟
-
18-09-2019 - |
سؤال
أنا أستخدم DBUNIT لاختبار استمرار الربيع / السبات.
لقد أنشأت اختبار مجردة:
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);
}
}
}
ولكن كلما قمت بتشغيل اختبار، فإنه يقوم بتحديث DB مرة أخرى DataSet قبل كل طريقة اختبار، وهو وقت طويل جدا وغير لطيف للغاية.
كيف يمكنني إعادة تحميل / تحديث فقط على الفشل؟
ملاحظة: كم تمتص الكود؟
المحلول
لقد وجدت طريقة لتسريع الاختبارات، حتى اعتقد أن السلوك لا يزال غير متوقع (تحديث فشل):
dbUnitConConfig.setFeature(DatabaseConfig.FEATURE_BATCHED_STATEMENTS,
true);
لا تنتمي إلى StackOverflow