2013-01-02 42 views
0

我有一个单元数据集尝试将数据输入sybase datetime列,但在尝试运行单元测试时出错。Unitils数据集 - 插入到sybase datetime列

我不能在网上找到任何有关插入日期,所以我想它声明为以同样的方式与其他列的字符串,但我得到的错误:

org.unitils.core.UnitilsException: Error inserting test data from DbUnit dataset for method etc etc 
    at org.unitils.dbunit.DbUnitModule.insertDataSet(DbUnitModule.java:156) 
    at org.unitils.dbunit.DbUnitModule$DbUnitListener.beforeTestSetUp(DbUnitModule.java:556) 
    at org.unitils.core.Unitils$UnitilsTestListener.beforeTestSetUp(Unitils.java:273) 
    at org.unitils.UnitilsJUnit4TestClassRunner$TestListenerInvokingMethodRoadie.runBeforesThenTestThenAfters(UnitilsJUnit4TestClassRunner.java:151) 
    at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:84) 
    at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49) 
    at org.unitils.UnitilsJUnit4TestClassRunner.invokeTestMethod(UnitilsJUnit4TestClassRunner.java:95) 
    at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:61) 
    at org.unitils.UnitilsJUnit4TestClassRunner.access$000(UnitilsJUnit4TestClassRunner.java:44) 
    at org.unitils.UnitilsJUnit4TestClassRunner$1.run(UnitilsJUnit4TestClassRunner.java:62) 
    at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34) 
    at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44) 
    at org.unitils.UnitilsJUnit4TestClassRunner.run(UnitilsJUnit4TestClassRunner.java:68) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 
Caused by: org.unitils.core.UnitilsException: Error while executing DataSetLoadStrategy 
    at org.unitils.dbunit.datasetloadstrategy.impl.BaseDataSetLoadStrategy.execute(BaseDataSetLoadStrategy.java:46) 
    at org.unitils.dbunit.DbUnitModule.insertDataSet(DbUnitModule.java:230) 
    at org.unitils.dbunit.DbUnitModule.insertDataSet(DbUnitModule.java:153) 
    ... 18 more 
Caused by: org.dbunit.dataset.datatype.TypeCastException: Error casting value for table 'USER' and column 'SUSPEND_SD' 
    at org.dbunit.operation.AbstractBatchOperation.execute(AbstractBatchOperation.java:202) 
    at org.dbunit.operation.CompositeOperation.execute(CompositeOperation.java:78) 
    at org.unitils.dbunit.datasetloadstrategy.impl.CleanInsertLoadStrategy.doExecute(CleanInsertLoadStrategy.java:45) 
    at org.unitils.dbunit.datasetloadstrategy.impl.BaseDataSetLoadStrategy.execute(BaseDataSetLoadStrategy.java:44) 
    ... 20 more 

将在迄今为止的唯一线路我的数据集是:

<USER ID="4" FULL_NAME="user3" SUSPEND_SD="25/12/2011 00:00" SUSPEND_ED="25/12/2013 00:00" PASSWORD="password3"/> 

任何人都可以帮忙吗?

在此先感谢。

回答

0

好了,原来它是完全相同的格式YYYY- MM-DD HH:MM:SS“,例如”2011-01-01 02:00:00“。

0

我不知道单位是如何工作的,但假设你的数据集是可编辑的,为什么不把日期改为yyyy/mm/dd格式。

Java堆栈提到铸造,这将是一个失败获得dd/mm/yyyy datetime我想。

或者中间件可能有一定的日期配置意味着 - 你可能可以告诉它的日期是英国(?它甚至可能是区域设置)

+0

谢谢,但仍然是相同的错误:(我认为这是因为它被声明为一个字符串,但我怎么能从数据集中的日期列插入的东西? – TheBloodGuy