`

ant 执行一个dbunit任务

    博客分类:
  • ANT
阅读更多
用的时候把build.properties文件中的相关目录设置一下

lib 目录中现有
dbunit-2.4.7.jar  slf4j-api-1.6.0.jar

创建数据库时编码尽量用utf-8,否则中文乱码问题很头痛.
CREATE DATABASE /*!32312 IF NOT EXISTS*/`side-study` /*!40100 DEFAULT CHARACTER SET utf8 */;

build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant_test" default="init-db">
    <property file="build.properties" />
  
    <path id="project.lib">
        <fileset file="$(dir.lib)" includes="**/*.jar"/>
    </path>
    <taskdef name="dbunit" classname="org.dbunit.ant.DbUnitTask" classpathref="project.lib"/>

    <target name="init-db">  
        <sql driver="${jdbc.driver}" url="${jdbc.url}" userid="${jdbc.username}" password="${jdbc.password}" src="${dbunit.sql}/schema.sql" onerror="continue">  
            <classpath refid="project.lib" />  
        </sql>  
      
        <dbunit driver="${jdbc.driver}" url="${jdbc.url}" userid="${jdbc.username}" password="${jdbc.password}">  
            <dbconfig>  
                <property name="datatypeFactory" value="${dbunit.datatype}" />  
            </dbconfig>  
            <classpath refid="project.lib" />  
            <operation type="CLEAN_INSERT" src="${dbunit.data}/default-data.xml" format="flat" />  
        </dbunit>  
    </target>
    
</project>

build.properties
#ant build setting
dir.src=src
dir.report=report
dir.classes=classes
dir.lib=lib
dir.dist=dist
dir.doc=doc
main-class=zhch.Test

#dbunit setting
dbunit.sql=sql
dbunit.data=data
dbunit.sqltype=mysql
dbunit.datatype=org.dbunit.ext.mysql.MySqlDataTypeFactory
#dbunit.sqltype=h2  
#dbunit.datatype=org.dbunit.ext.h2.H2DataTypeFactory  
#dbunit.sqltype=oracle  
#dbunit.datatype=org.dbunit.ext.oracle.Oracle10DataTypeFactory  

#mysql version database setting  
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/side-study?useUnicode=true&characterEncoding=utf-8
jdbc.username=discuz
jdbc.password=discuz
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect


schema.sql  from springside3.3 mini-web

    alter table acct_user_role 
        drop foreign key FKFE85CB3E16A0ABF1;

    alter table acct_user_role 
        drop foreign key FKFE85CB3E7175E811;

    drop table if exists acct_role;

    drop table if exists acct_user;

    drop table if exists acct_user_role;

    create table acct_role (
        id bigint not null auto_increment,
        name varchar(255) not null unique,
        primary key (id)
    ) ENGINE=InnoDB;

    create table acct_user (
        id bigint not null auto_increment,
        email varchar(255),
        login_name varchar(255) not null unique,
        name varchar(255),
        password varchar(255),
        primary key (id)
    ) ENGINE=InnoDB;

    create table acct_user_role (
        user_id bigint not null,
        role_id bigint not null
    ) ENGINE=InnoDB;

    alter table acct_user_role 
        add constraint FKFE85CB3E16A0ABF1 
        foreign key (user_id) 
        references acct_user (id);

    alter table acct_user_role 
        add constraint FKFE85CB3E7175E811 
        foreign key (role_id) 
        references acct_role (id);


default-data.xml
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
  <acct_role ID="1" NAME="管理员"/>
  <acct_role ID="2" NAME="用户"/>
  <acct_user ID="1" EMAIL="admin@springside.org.cn" LOGIN_NAME="admin" NAME="Admin" PASSWORD="admin"/>
  <acct_user ID="2" EMAIL="user@springside.org.cn" LOGIN_NAME="user" NAME="User" PASSWORD="user"/>
  <acct_user ID="3" EMAIL="jack@springside.org.cn" LOGIN_NAME="user2" NAME="Jack" PASSWORD="user2"/>
  <acct_user ID="4" EMAIL="kate@springside.org.cn" LOGIN_NAME="user3" NAME="Kate" PASSWORD="user3"/>
  <acct_user ID="5" EMAIL="sawyer@springside.org.cn" LOGIN_NAME="user4" NAME="Sawyer" PASSWORD="user4"/>
  <acct_user ID="6" EMAIL="ben@springside.org.cn" LOGIN_NAME="user5" NAME="Ben" PASSWORD="user5"/>
  <acct_user_role USER_ID="1" ROLE_ID="1"/>
  <acct_user_role USER_ID="1" ROLE_ID="2"/>
  <acct_user_role USER_ID="2" ROLE_ID="2"/>
  <acct_user_role USER_ID="3" ROLE_ID="2"/>
  <acct_user_role USER_ID="4" ROLE_ID="2"/>
  <acct_user_role USER_ID="5" ROLE_ID="2"/>
  <acct_user_role USER_ID="6" ROLE_ID="2"/>
</dataset>


分享到:
评论

相关推荐

    DBUnit最佳实践之使用ant命令

    创建一个Ant任务,例如 `&lt;dbunit&gt;`,来执行DBUnit的操作。需要配置数据库连接信息(如URL、用户名、密码)、数据格式、操作类型(如CLEAN_INSERT、UPDATE等)以及数据文件路径。 3. 数据文件 数据文件通常为XML或...

    使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试3

    **Ant** 是Apache开发的一个Java构建工具,通过XML配置文件定义任务,可以自动化编译、打包、部署等流程。在测试场景中,Ant常用来编译源码、执行测试用例,并生成测试报告。 **Cactus** 是一个用于在服务器环境中...

    使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试4

    在本文中,我们将深入探讨如何使用一系列技术和工具,如EJB、Struts1.3、Ant、Cactus、DbUnit、JMeter以及StrutsTest,来实现一个完整的测试流程,针对一个基于Java的企业级应用程序进行全面的测试。这些技术在软件...

    使用EJB+Struts1.3+Ant+Cactus+DbUnit+JMeter+StrutsTest实现测试2

    本项目利用一系列强大的工具,如EJB(Enterprise JavaBeans)、Struts 1.3、Ant构建工具、Cactus测试框架、DbUnit数据库单元测试工具、JMeter性能测试工具以及StrutsTest扩展,来实现一个全面的测试流程。...

    DBUNIT使用

    用户可以在自己的测试类中直接或间接调用 DbUnit,或者从 Ant 中使用 DbUnit 来执行某些任务。 DbUnit 的优点是提供了一种相对简单灵活的方式来准备和验证数据库,这种方式独立于被测代码。 DbUnit 还可以与 JUnit ...

    DBUnit使用文档

    总的来说,DBUnit 是一个强大的数据库测试工具,通过 Ant 脚本与数据库进行交互,确保测试环境的一致性和可靠性。通过使用不同的操作类型,可以灵活地管理数据库中的数据,以便在测试前后保持预期的状态。在实际项目...

    通向架构师的道路(第二十五天)SSH的单元测试与dbunit的整合.docx

    DbUnit是一个基于JUnit的数据库测试框架,它可以帮助我们测试数据库相关的代码。使用DbUnit,我们可以模拟数据库数据,并测试数据库相关的代码。例如,我们可以使用DbUnit来测试DAO层的代码,确保其能够正确地读取和...

    通向架构师的道路(第二十五天)SSH的单元测试与dbunit的整合的例子

    在`build.xml`或`pom.xml`中配置相应的目标,比如`&lt;import&gt;`元素引入dbunit相关的任务,`&lt;sql&gt;`元素执行SQL脚本初始化数据库,`&lt;dbunit&gt;`元素执行dbunit操作。 在`pom.xml`文件中,除了添加JUnit和Spring Test的...

    服务器 使用脚本打包编译java项目

    2. **构建工具**:`ant`是一个基于XML的构建工具,常用于Java项目的构建、编译、测试和打包。`build.sh`脚本可能包含Ant命令,执行编译、测试和打包任务。`build.xml`是Ant的构建配置文件,定义了构建过程中的各种...

    AppFuse Architecture

    一个项目由多个目标(targets)组成,每个目标包含一组任务(tasks)。AppFuse项目中的主要任务包括`clean`(清除构建产物)、`ejbdoclet`和`webdoclet`(生成文档)、`compile-module`(编译模块)、`package-...

Global site tag (gtag.js) - Google Analytics