初次使用ant+dbunit,用ant可以实现,也可以直接写dbunit的测试代码可现。
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..."); } } |