Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DbUnit Java Disable FOREIGN_KEY_只检查一个测试_Java_Mysql_Spring_Dbunit - Fatal编程技术网

DbUnit Java Disable FOREIGN_KEY_只检查一个测试

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

我有一个Java项目,其中包含Spring和Java7中的DbUnit2.5.4。 我想禁用DbUnit键检查,但仅针对交叉引用多个表的特定测试。 我尝试过这个代码,但没有成功。 如何仅对此测试禁用约束完整性

@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
将在测试执行期间禁用所有约束,并在以后启用它们