DbUnit Java Disable FOREIGN_KEY_只检查一个测试
我有一个Java项目,其中包含Spring和Java7中的DbUnit2.5.4。 我想禁用DbUnit键检查,但仅针对交叉引用多个表的特定测试。 我尝试过这个代码,但没有成功。 如何仅对此测试禁用约束完整性DbUnit Java Disable FOREIGN_KEY_只检查一个测试,java,mysql,spring,dbunit,Java,Mysql,Spring,Dbunit,我有一个Java项目,其中包含Spring和Java7中的DbUnit2.5.4。 我想禁用DbUnit键检查,但仅针对交叉引用多个表的特定测试。 我尝试过这个代码,但没有成功。 如何仅对此测试禁用约束完整性 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:config/ioc/application-context-spring-test.xml" } @Ru
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:config/ioc/application-context-spring-test.xml"
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:config/ioc/application-context-spring-test.xml"
})
@TestExecutionListeners({
DependencyInjectionTestExecutionListener.class,
CleanInsertTestExecutionListener3A.class,
TransactionalTestExecutionListener.class, })
@TransactionConfiguration(
transactionManager = "myTxManager", defaultRollback = true)
public class FluxDSImplTest36466 {
.......
IDatabaseConnection dbConn = new DatabaseDataSourceConnection(
testContext.getApplicationContext().getBean(DataSource.class));
// BAD TEST
// dbConn.getConnection()
//.prepareStatement("set @@session.foreign_key_checks = 0").execute();
// dbConn.getConnection()
//.prepareStatement("set referential_integrity FALSE").execute();
// dbConn.getConnection()
//.prepareStatement("set foreign_key_checks=0;").execute();
// dbConn.getConnection()
//.prepareStatement("set foreign_key_checks=0").execute();
// dbConn.getConnection()
//.createStatement().execute("SET FOREIGN_KEY_CHECKS=0;");
//DatabaseOperation.CLEAN_INSERT.execute(dbConn, replaceDataSet);
如果您愿意尝试一个新的库,我建议您使用具有此类功能并与Spring集成的库,下面是一个示例:
@RunWith(SpringRunner.class)
@DBRider
@ContextConfiguration(classes = TestConfig.class)
public class DataSetIT {
@Autowired
private EntityUtils entityUtils;
@Test
@DataSet(value = "dataset.yml", cleanBefore = true, disableConstraints = true)
public void testCleanBefore() {
entityUtils.assertValues();
}
}
disableConstraints
将在测试执行期间禁用所有约束,并在以后启用它们