初次使用ant+DbUnit,用ant可以实现,也可以直接写DbUnit的测试代码可现。
dataset.xml
build.xml
直接的测试代码,运行JUnit测试就可以将数据导入数据库:
dataset.xml
代码: |
<?xml version='1.0' encoding='UTF-8'?> <dataset> <EMPLOYEE id='1' firstname='Sager' lastname='Xiao' /> <EMPLOYEE id='2' firstname='Cheung' lastname='Zhang' /> <EMPLOYEE id='3' firstname='Sword' lastname='Lu' /> </dataset> |
build.xml
代码: |
<project name="MyDbUnit" basedir="." default="db-load"> <property name="lib.dir" value="D:/Java/lib"/> <property name="dbunit.jar" value="${lib.dir}/dbunit-2.1/dbunit-2.1.jar"/> <property name="junit.jar" value="${lib.dir}/junit3.8.1/junit.jar"/> <property name="junitdoclet.jar" value="${lib.dir}/JUnitDoclet.1.0.2/JUnitDoclet.jar"/> <property name="jdbc.jar" value="${lib.dir}/mysql-connector-java-3.0.11-stable-bin.jar"/> <property name="classes.dir" value="./bin"/> <path id="test.classpath"> <pathelement location="${dbunit.jar}"/> <pathelement location="${junit.jar}"/> <pathelement location="${junitdoclet.jar}"/> <pathelement location="${jdbc.jar}"/> </path> <target name="prepare"> <taskdef name="dbunit" classname="org.dbunit.ant.DbUnitTask" classpathref="test.classpath"/> </target> <target name="db-load" depends="prepare"> <dbunit driver="com.mysql.jdbc.Driver" supportBatchStatement="false" url="jdbc:mysql://localhost/test" userid="root" password="sql"> <operation type="CLEAN_INSERT" src="dataset.xml" /> </dbunit> </target> </project> |
直接的测试代码,运行JUnit测试就可以将数据导入数据库:
代码: |
/* * Created on 2004-10-12 */ package com.sager.dbunit; import java.io.FileInputStream; import java.sql.Connection; import java.sql.DriverManager; import org.dbunit.DatabaseTestCase; import org.dbunit.database.DatabaseConnection; import org.dbunit.database.IDatabaseConnection; import org.dbunit.dataset.IDataSet; import org.dbunit.dataset.xml.FlatXmlDataSet; import org.dbunit.operation.DatabaseOperation; /** * @author Sager * */ public class SampleTest extends DatabaseTestCase { public SampleTest(String name) { super(name); } /** * @see org.dbunit.DatabaseTestCase#getConnection() */ protected IDatabaseConnection getConnection() throws Exception { Class driverClass = Class.forName("com.mysql.jdbc.Driver"); Connection jdbcConnection = DriverManager.getConnection( "jdbc:mysql://localhost/test", "root", "sql"); return new DatabaseConnection(jdbcConnection); } /** * @see org.dbunit.DatabaseTestCase#getDataSet() */ protected IDataSet getDataSet() throws Exception { return new FlatXmlDataSet(new FileInputStream("dataset.xml")); } protected DatabaseOperation getSetUpOperation() throws Exception { return DatabaseOperation.REFRESH; } protected DatabaseOperation getTearDownOperation() throws Exception { return DatabaseOperation.NONE; } public void testMe() { System.out.println("Testing..."); } } |