1

sybase の datetime 列にデータを入力しようとしている unitils データセットがありますが、単体テストを実行しようとするとエラーになります。

日付の挿入についてオンラインで何も見つからないため、他の列と同じ方法で文字列として宣言しようとしましたが、エラーが発生します:

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"/>

誰でも助けることができますか?

前もって感謝します。

4

2 に答える 2

1

わかりました。正確にYYYY-MM-DDHH:MM:SS "の形式である必要があります(例:" 2011-01-01 02:00:00 ")。

于 2013-01-07T08:43:03.517 に答える
0

unitilsがどのように機能するかはわかりませんが、データセットが編集可能であると仮定して、日付をyyyy / mm/dd形式に変更してみませんか。

そのJavaスタックはキャストについて言及しており、それはdd / mm/yyyyを日時に取得するのに失敗するだろうと私は思います。

あるいは、ミドルウェアにはおそらくいくつかの日付設定手段があります-おそらく日付が英国であると言うことができます(それは地域の設定でさえあるかもしれませんか?)

于 2013-01-03T14:04:08.547 に答える