Ребята у меня следующая проблема, мне нужно протестировать две таблицы на идентичность. вот так я это делаю. Код | import java.io.FileOutputStream;
import org.dbunit.Assertion; import org.dbunit.DBTestCase; import org.dbunit.PropertiesBasedJdbcDatabaseTester; import org.dbunit.database.DatabaseConfig; import org.dbunit.database.QueryDataSet; import org.dbunit.dataset.IDataSet; import org.dbunit.dataset.ITable; import org.dbunit.dataset.xml.XmlDataSet;
public class SampleDBUnitTest extends DBTestCase {
private static final String TABLE1 = "SWH_Kalkulationsanfrage_kopf"; private static final String TABLE2 = "SWH_PARAMETR";
public SampleDBUnitTest(String name) { super(name); System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_DRIVER_CLASS, "oracle.jdbc.driver.OracleDriver"); System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_CONNECTION_URL, "...."); System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_USERNAME, "...."); System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_PASSWORD, "...."); System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_SCHEMA, "...."); }
protected IDataSet getDataSet() throws Exception { QueryDataSet dataSet = new QueryDataSet(getConnection()); dataSet.addTable(TABLE1); dataSet.addTable(TABLE2); XmlDataSet.write(dataSet, new FileOutputStream("dataset.xml"));
return dataSet;
}
public void testMe() throws Exception { getConnection().getConfig().setFeature(DatabaseConfig.FEATURE_QUALIFIED_TABLE_NAMES, true);
IDataSet databaseDataSet = getConnection().createDataSet(); ITable table1 = databaseDataSet.getTable(TABLE1);
IDataSet databaseDataSet2 = getConnection().createDataSet(); ITable table2 = databaseDataSet2.getTable(TABLE2); Assertion.assertEquals(table1, table2); }
}
|
вот так выглядит мой dataset и те таблицы которые я хочу сравнить Код | <?xml version='1.0' encoding='UTF-8'?> <dataset> <table name="SWH_Kalkulationsanfrage_kopf"> <column>TKK_MESSAGEID</column> <column>TKK_QUELLSYSTEM</column> <column>TKK_ZIELSYSTEM</column> <column>TKK_ANGEBOTSGUID</column> <column>TKK_ANGEBOTSGUID_VORG</column> <column>TKK_ANGEBOTSGUID_ERST</column> <column>TKK_ANGEBOTSBEZEICHNUNG</column> <column>TKK_GP_NUMMER</column> <column>TKK_GP_NAME_1</column> <column>TKK_GP_NAME_2</column> <column>TKK_GP_STRASSE</column> <column>TKK_GP_HAUSNUMMER</column> <column>TKK_GP_HAUSNUMMERX</column> <column>TKK_GP_PLZ</column> <column>TKK_GP_ORT</column> <column>TKK_GP_POSTFACH</column> <column>TKK_GP_PLZ_POSTFACH</column> <column>TKK_GP_PLZ_FIRMA</column> <column>TKK_GP_LAENDERSCHLUESSEL</column> <column>TKK_BENUTZERKUERZEL_AKTIVE</column> <column>TKK_BENUTZERKUERZEL_AD</column> <column>TKK_BENUTZERKUERZEL_ID</column> <column>TKK_AKQUISITIONSART</column> <column>TKK_KUNDENTYPE</column> <column>TKK_KUNDENSEGMENT</column> <column>TKK_ANGEBOTSKUNDENKATEGORIE</column> <column>TKK_BONITAET_VERTRIEB</column> <column>TKK_ZAHLUNGSZIEL</column> <column>TKK_GESAMTARBEIT</column> </table>
<table name="SWH_PARAMETR"> <column>PARA_KEY</column> <column>PARA_VALUE</column> <column>PARA_COMMENT</column> </table> </dataset>
|
как видно абсолютно две разные таблицы, также они пустые, тоесть не содержат никаких данных. Проблема в том что тест говорит "ок", а должен сказать error. Почему так и что я делаю не правильно? да вовремя запуска вылетает следующая exception Код | 009-09-02 14:39:03,942 DEBUG [org.dbunit.util.SQLHelper --> update():234] - Could not retrieve the 'isAutoIncrement' property because not yet running on Java 1.5 - defaulting to NO. Table=SWH_PARAMETR, Column=PARA_KEY java.sql.SQLException: Ungültiger Spaltenindex at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70) at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:445) at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:957) at org.dbunit.util.SQLHelper.createColumn(SQLHelper.java:348) at org.dbunit.database.DatabaseTableMetaData.getColumns(DatabaseTableMetaData.java:331) at org.dbunit.database.DatabaseTableMetaData.toString(DatabaseTableMetaData.java:402) at org.slf4j.helpers.MessageFormatter.safeObjectAppend(MessageFormatter.java:270) at org.slf4j.helpers.MessageFormatter.deeplyAppendParameter(MessageFormatter.java:242) at org.slf4j.helpers.MessageFormatter.arrayFormat(MessageFormatter.java:200) at org.slf4j.helpers.MessageFormatter.format(MessageFormatter.java:142) at org.slf4j.impl.Log4jLoggerAdapter.debug(Log4jLoggerAdapter.java:246) at org.dbunit.dataset.OrderedTableNameMap.update(OrderedTableNameMap.java:234) at org.dbunit.database.DatabaseDataSet.getTableMetaData(DatabaseDataSet.java:294) at org.dbunit.database.DatabaseDataSet.getTable(DatabaseDataSet.java:307) at de.enercity.claudio2.crmtest.utils.SampleDBUnitTest.testMe(SampleDBUnitTest.java:51) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at junit.framework.TestCase.runTest(TestCase.java:164) at junit.framework.TestCase.runBare(TestCase.java:130) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:120) at junit.framework.TestSuite.runTest(TestSuite.java:230) at junit.framework.TestSuite.run(TestSuite.java:225) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130) 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) 2009-09-02 14:39:03,942 DEBUG [org.dbunit.dataset.datatype.DefaultDataTypeFactory --> update():234] - createDataType(sqlType=12 , sqlTypeName=VARCHAR2, tableName=SWH_PARAMETR, columnName=PARA_KEY) - start
|
--------------------
www.unkis.com
|