`

Djunit---------Ant 执行指南

阅读更多

我想大家一定会遇到这个问题的

Djunit 是很强大的软件,主要是日企使用,具体的说明请看下面的官网:

http://works.dgic.co.jp/djunit/

Ant 也是一个很强大的软件,是构建工具,现在也不比较流行。具体的在下面官网

http://ant.apache.org/

现在就给大家说明下他们的组合使用:

为什么要组合使用那。。。

我想大家要是看到这篇文章的话一定是遇到问题了。。。

现在我就写了一个简单的sample,大家看了就会明白的

主要是用到的jar包

asm-2.2.1.jar

asm-attrs-1.5.3.jar

djunit.jar

jakarta-oro-2.0.7.jar

jcoverage-djunit-1.0.5.jar

junit.jar

一下是sample代码:

 

package com.chenhailong.source;

/**
 * 
 * @author chenhailong
 * 
 */
public class Simple {

    private String name;
    private boolean sex;
    private int age;
    private String localtion;
    private String company;

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name
     *            the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the sex
     */
    public boolean isSex() {
        return sex;
    }

    /**
     * @param sex
     *            the sex to set
     */
    public void setSex(boolean sex) {
        this.sex = sex;
    }

    /**
     * @return the age
     */
    public int getAge() {
        return age;
    }

    /**
     * @param age
     *            the age to set
     */
    public void setAge(int age) {
        this.age = age;
    }

    /**
     * @return the localtion
     */
    public String getLocaltion() {
        return localtion;
    }

    /**
     * @param localtion
     *            the localtion to set
     */
    public void setLocaltion(String localtion) {
        this.localtion = localtion;
    }

    /**
     * @return the company
     */
    public String getCompany() {
        return company;
    }

    /**
     * @param company
     *            the company to set
     */
    public void setCompany(String company) {
        this.company = company;
    }

    public Simple getMember() {
        Simple simple = new Simple();
        simple.age = 10;
        simple.company = "dnc.2010";
        simple.localtion = "shenyang";
        simple.name = "zhangli";
        simple.sex = true;
        return simple;
    }

}

 

Test 代码

package com.chenhailong.test;

import jp.co.dgic.testing.framework.DJUnitTestCase;

import com.chenhailong.source.Simple;


/**
 * 
 * @author chenhailong
 *
 */
public class SimpleTest extends DJUnitTestCase{

    @Override
    protected void setUp() throws Exception {
        super.setUp();
    }

    public void testGetMember() {
        Simple simple = new Simple();
        simple.setAge(10);
        simple.setCompany("dnc");
        simple.setLocaltion("shanghai");
        simple.setName("chenhailong");
        simple.setSex(false);
        addReturnValue(Simple.class, "getMember", simple);
        simple = simple.getMember();
        assertEquals("dnc", simple.getCompany());
        assertEquals("shanghai", simple.getLocaltion());
        assertEquals("chenhailong", simple.getName());
        assertEquals(10, simple.getAge());
        assertEquals(false, simple.isSex());
    }

}

 build.properties

djunit.lib.dir=E:/JavaPortlet/Djunit/lib
junit.report.dir=./report/junit
coverage.report.dir=./report/coverage

 build.xml

<?xml version="1.0" encoding="Windows-31J"?>

<project name="djUnit" basedir="." default="djunit.report">

	<taskdef resource="djunittasks.properties" classpath="./lib/djunit.jar" />

	<property file="build.properties" />

	<path id="class.path">
		<fileset dir="${djunit.lib.dir}">
			<include name="**/*.jar" />
		</fileset>
	</path>
	<!--=============== compile ===============-->
	<target name="compile">
		<mkdir dir="./classes" />
		<javac srcdir="./src" destdir="./bin" debug="yes" includeantruntime="false" />
		<copy todir="./classes">
			<fileset dir="./bin">
				<include name="**/*.class"/>
			</fileset>
		</copy>
	</target>
	<!--=============== test ===============-->
	<target name="djunit.test" depends="compile">
		<delete dir="${junit.report.dir}" />
		<mkdir dir="${junit.report.dir}" />
		<djunit printsummary="yes" targetsrcdir="./src" virtualmock="yes" coverage="yes" asmversion="ASM2">
			<classpath refid="class.path" />
			<classpath path="./classes" />
			<formatter type="xml" />
			<batchtest todir="${junit.report.dir}">
				<fileset dir="./classes">
					<include name="**/*Test.class" />
				</fileset>
			</batchtest>
		</djunit>
		<junitreport>
			<fileset dir="${junit.report.dir}">
				<include name="TEST-*.xml" />
			</fileset>
			<report format="frames" todir="${junit.report.dir}" />
		</junitreport>
	</target>
	<!--=============== djUnit Coverage Report ===============-->
	<target name="djunit.report" depends="djunit.test">
		<delete dir="${coverage.report.dir}" />
		<mkdir dir="${coverage.report.dir}" />
		<djunit-coverage-report serFile="./jcoverage.ser" srcdir="./src" destdir="${coverage.report.dir}">
			<classpath refid="class.path" />
		</djunit-coverage-report>
	</target>
</project>

 执行的结果如下:

Buildfile: E:\JavaPortlet\Djunit\build.xml
compile:
djunit.test:
   [delete] Deleting directory E:\JavaPortlet\Djunit\report\junit
    [mkdir] Created dir: E:\JavaPortlet\Djunit\report\junit
   [djunit] Running com.chenhailong.test.SimpleTest
   [djunit] Running com.chenhailong.test.SimpleTest
   [djunit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.64 sec
[junitreport] Processing E:\JavaPortlet\Djunit\TESTS-TestSuites.xml to C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\null1445352326
[junitreport] Loading stylesheet jar:file:/E:/eclipseTPTP/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-junit.jar!/org/apache/tools/ant/taskdefs/optional/junit/xsl/junit-frames.xsl
[junitreport] Transform time: 1047ms
[junitreport] Deleting: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\null1445352326
djunit.report:
   [delete] Deleting directory E:\JavaPortlet\Djunit\report\coverage
    [mkdir] Created dir: E:\JavaPortlet\Djunit\report\coverage
[djunit-coverage-report] djUnit coverage report
BUILD SUCCESSFUL
Total time: 4 seconds

 现在大家就尝试一下

heihei 在完善一下:

@echo off

echo batTest ant

call ant -version
 pause

<?xml version="1.0" ?>
<project basedir="." default="echo" name="chenhailong">

	<target name="echo">
		<echo message="hello chenhailong" />
	</target>
	<target name="test">
		<echo message="My cock is big" />
	</target>
</project>

 

如果有什么问题请和我联系

还有就是 如果要转载的话请注明作者和地址 谢谢

 

0
2
分享到:
评论
10 楼 chenhailong 2013-01-28  
gtf19880205 写道
谢谢啊

我发现个问题,当我的测试代码和源码都在一个工程中的时候mock是可以成功的,但是我把测试代码独立一个工程的话mock就失败了。


嗨。。。这个

测试为了什么啊,测试不就是为了测试源source吗。。。
9 楼 gtf19880205 2013-01-25  
谢谢啊

我发现个问题,当我的测试代码和源码都在一个工程中的时候mock是可以成功的,但是我把测试代码独立一个工程的话mock就失败了。
8 楼 chenhailong 2013-01-24  
好吧。我帮你查了一下官网

哈哈

我这篇文章是写于2年前,技术更新了
JCoverageを使用する際の"instrument"の代わりに、djUnitは"djUnit-instrument"を記述する。なお、オプションに"virtualmock=yes/no"があり、virtualmockの使用可否を指定出来る

说明virtualmock只有2个选择 一个yes 一个no

你在看看你设定yes看看
7 楼 gtf19880205 2013-01-24  
全了
ant-junit.jar
ant.jar
asm-2.2.1.jar
asm-attrs-1.5.3.jar
djunit.jar
jakarta-oro-2.0.7.jar
jcoverage-djunit-1.0.5.jar
junit-4.8.2.jar
6 楼 chenhailong 2013-01-24  
gtf19880205 写道
怎么我的mock一直不成功
<djunit virtualmock="true" printsummary="yes" targetsrcdir="./src" coverage="yes">


jar包添加全了吗?
asm-2.2.1.jar
asm-attrs-1.5.3.jar
djunit.jar
jakarta-oro-2.0.7.jar
jcoverage-djunit-1.0.5.jar
junit.jar
5 楼 gtf19880205 2013-01-24  
classpath="./lib/djunit.jar"
chenhailong 写道
gtf19880205 写道
怎么我的mock一直不成功
<djunit virtualmock="true" printsummary="yes" targetsrcdir="./src" coverage="yes">

不成功的现象能不能发过来,这样才知道问题啊,你上来就说不成功,这个我真的不知道为什么了。


现象是这样:我用eclipse跑可以mock成功,但是用ant跑的时候发现mock都没生效,导致测试用例失败。virtualmock="true" 这个参数我也确认过了,传过去了。
4 楼 chenhailong 2013-01-24  
gtf19880205 写道
怎么我的mock一直不成功
<djunit virtualmock="true" printsummary="yes" targetsrcdir="./src" coverage="yes">

不成功的现象能不能发过来,这样才知道问题啊,你上来就说不成功,这个我真的不知道为什么了。
3 楼 gtf19880205 2013-01-23  
chenhailong 写道
gtf19880205 写道
怎么我的mock一直不成功
<djunit virtualmock="true" printsummary="yes" targetsrcdir="./src" coverage="yes">

如果你用eclipse的djunit插件好使的话,插件你djunit的asmversion。这个非常重要。不同asmversion 会不一样的


{
asmversion ASMのバージョンを指定する ASM or ASM2 or ASM15
}

看看 指定一下默认是用ASM,你没写是用的默认值


ASM  ASM or ASM2 or ASM15 这3个值都试过了,还是不行
2 楼 chenhailong 2013-01-22  
gtf19880205 写道
怎么我的mock一直不成功
<djunit virtualmock="true" printsummary="yes" targetsrcdir="./src" coverage="yes">

如果你用eclipse的djunit插件好使的话,插件你djunit的asmversion。这个非常重要。不同asmversion 会不一样的


{
asmversion ASMのバージョンを指定する ASM or ASM2 or ASM15
}

看看 指定一下默认是用ASM,你没写是用的默认值
1 楼 gtf19880205 2013-01-22  
怎么我的mock一直不成功
<djunit virtualmock="true" printsummary="yes" targetsrcdir="./src" coverage="yes">

相关推荐

    apache-ant-1.9.16-bin.zip

    标题"apache-ant-1.9.16-bin.zip"表明这是Apache Ant的一个特定版本,即1.9.16,且文件以“bin”命名,意味着它包含的是可执行文件和运行时所需的库,而非源代码。这个版本可能包含了用于Windows、Linux和Mac OS等...

    apache-ant-1.6.5-bin.zip_ ant 1.6.5_ant_ant-1.6.5_apache ant win

    这个"apache-ant-1.6.5-bin.zip"文件是Ant的1.6.5版本的二进制发行版,适合在Windows操作系统上使用。Ant是基于Java的,它的主要功能是读取XML格式的构建文件(build.xml),根据其中的指令来编译源代码、运行测试、...

    apache-ant-zip-2.3.jar.zip

    手动将apache-ant-zip-2.3.jar打包到项目中通常涉及以下步骤: 1. **下载**: 首先,你需要从可靠的源下载apache-ant-zip-2.3.jar文件。这可能是通过官方网站、第三方存储库或其他可信的资源进行的。 2. **本地存储...

    leaflet-ant-path_leaflet_

    本篇文章将详细探讨“leaflet-ant-path”这个插件以及它在Leaflet中的应用。 “leaflet-ant-path”是一个专门为Leaflet设计的插件,它提供了动态路径效果,能够模拟汽车、火车轨道、飞机航线等物体的移动轨迹。这种...

    apache-ant-1.6.5-bin

    在"apache-ant-1.6.5-bin"这个压缩包中,包含了Ant的1.6.5版本的二进制发行版。Ant是Apache软件基金会的一个项目,它的设计灵感来源于Make,但采用了XML来描述构建文件,这使得构建过程更具可读性和可维护性。 **1....

    apache-ant-1.9.16-bin.tar.gz

    4. 解压后,你会得到一个名为"apache-ant-1.9.16"的目录,里面包含Ant的可执行文件和相关资源。 Ant的核心概念是任务(Tasks),这些任务是由Ant内置的或者由用户自定义的Java类实现的。例如,`javac`任务用于编译...

    apache-ant-1.10.1-ant编译环境

    例如解压到E:\学习类\apache-ant-1.8.2, 2、配置环境变量。在系统环境变量中新建一个ANT_HOME 的变量,值为D:\apache-ant-1.10.1。在path 变量中添加 %ANT_HOME%\bin; 如果没有path变量,则新建一个。 3、验证ant...

    apache-ant-1.9.9-bin.tar.gz 【适用于linux系统】

    - 解压后,将Ant的bin目录添加到PATH环境变量中,这样可以在任意目录下执行Ant命令:`export PATH=$PATH:/path/to/apache-ant-1.9.9/bin` - 验证安装是否成功,可以运行`ant -version`,如果显示正确的Ant版本信息...

    apache-ant-1.9.2-bin.zip

    这个"apache-ant-1.9.2-bin.zip"文件包含了Ant的1.9.2版本的二进制发行版,提供了运行和配置Ant所需的全部文件。 Ant的核心概念是构建文件(build.xml),这是一个XML格式的文件,定义了构建过程中的任务和目标。在...

    apache-ant-1.10.12-bin.tar.gz

    描述中的"apache-ant-1.10.12-bin.tar.gz"是对标题的重申,进一步强调这是Apache Ant的1.10.12版本的二进制发行版,采用的是tar.gz压缩格式,这种格式在Linux和Unix系统中很常见,可以有效地减少文件大小便于网络...

    开发工具 ant-1.9.6

    开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6...

    apache-ant-1.9.14.zip

    这个"apache-ant-1.9.14.zip"文件是Apache Ant的1.9.14版本,一个稳定的发行版,包含了运行Ant所需的所有组件。Ant的核心理念是基于XML的build文件,也就是"build.xml",它定义了构建过程中的任务和依赖关系。 1. *...

    最新版linux apache-ant-1.9.15-bin.tar.gz

    这将创建一个名为`apache-ant-1.9.15`的目录,其中包含了Ant的可执行文件和其他资源。要设置Ant环境变量,通常需要添加Ant的bin目录到PATH环境变量中,例如: ```bash export ANT_HOME=/path/to/apache-ant-1.9.15 ...

    apache-ant-1.10.1-bin.zip 【windows版,32位和64位通用】

    在"apache-ant-1.10.1-bin.zip"这个压缩包中,我们找到了Apache Ant的1.10.1版本,这是一个适用于Windows操作系统的版本,同时兼容32位和64位系统。这意味着无论你使用的是哪种体系结构的Windows系统,都可以顺利地...

    apache-ant-1.8.2

    由于Apache Ant 1.8.2在VanetMobiSim中作为辅助软件使用,用户可能需要下载并设置Ant的环境变量,然后在Ant的命令行工具中执行指定的构建脚本来完成VanetMobiSim的构建过程。这样,开发者可以专注于项目本身,而无需...

    apache-ant-1.9.3-bin.zip,从外面搬过来的Visual Studio的组件

    有的小伙伴在离线VS2019安装包的时候会遇到一个包下载失败,就是这个apache-ant-1.9.3-bin.zip,下载以后解压,把apache-ant-1.9.3-bin.zip放到VS2019的缓存目录里就可以了。

    apache-ant-1.7.0-1 src

    在"apache-ant-1.7.0-1 src"这个压缩包中,你将获得Ant 1.7.0版本的源代码,这对于开发者来说是极其宝贵的资源,可以深入理解其工作原理,进行定制化开发或调试。 Apache Ant 是基于XML的,它的主要任务定义在名为...

    apache-ant-1.10.5.rar

    在标题中提到的"apache-ant-1.10.5.rar"是一个包含Ant 1.10.5版本的压缩文件。这个版本的Ant是在2019年发布的一个稳定版本,它提供了许多新特性和改进,使得开发者能够更高效地管理他们的Java项目。 Ant主要基于XML...

    apache-ant-zip.jar包及用法

    apache-ant-zip.jar包及用法 用过java做压缩或解压的都知道,jdk提供的zip只能按UTF-8格式处理,所有jdk提供的zip不能支持中文文件名,可以采用Apache的zip包解决中文文件名问题。

    apache-ant-1.10.3-bin.zip

    在"apache-ant-1.10.3"压缩包中,你可以找到以下组成部分: 1. **bin目录**:包含可执行脚本,如`ant`和`ant.bat`,分别用于Unix/Linux和Windows环境启动Ant。这些脚本允许用户在命令行中执行构建任务。 2. **lib...

Global site tag (gtag.js) - Google Analytics