Steps to run JUnit test using Ant

JUnit & Ant

JUnit & Ant

概要: In this document we will discuss about the build tool ant and unit testing framework JUnit. Both of these have become an integral part of java development. Both ant and JUnit are widely used in the java world. ほとんどのお客様は、システムのテストと機能テスト用のコードを露光する前に、ユニットテストのログを見てみたいです.








はじめに

ApacheのANTは、一般的なビルドツールです. 「もう一つのきちんとしたツール」のため略称ANTスタンド. このツールは、UNIXでのmakeユーティリティーと似ていますが、Javaを使用して実装されています. これは主にJavaベースのソースコードのバイナリを構築し、事前に定義されているアプリケーションサーバに生成されたバイナリを展開するために使用されます. It can also be used to generate java docs for a code base and to execute the unit test suite for the whole code base. Ant in collaboration with JUnit helps developer to follow the test driven development approach.

Ant requires Java compiler to be installed having the environment variable JAVA_HOME set with its adequate value. Ant uses an XML file to define the build procedure. このファイルのデフォルト名はbuild.xmlのです. 一部の開発者はまた、いくつかのプロパティe.gを定義するプロパティ、すなわちbuild.propertiesファイル使用します. 必要性に基づいて随時変更するために必要なビルドバージョン番号およびその他の環境パラメータ.

インスタレーション

FEDORA - RHELで, ANTは、コマンドを使用してインストールすることができます - yumのRPMを使用してアリインストールするか、それをインストールすることができます - 私は、コマンド. この場合は、まずアリのパッケージをダウンロードしてください.

DEBIAN - Ubuntuで, ANTは、コマンドを使用してインストールすることができます - apt-getのアリをインストール.

Windowsの – Windows環境で、私たちはant_をダウンロードする必要があります<VERSION_NO>.zipファイル. このZIPバンドルはフォルダに抽出する必要があります. このフォルダには、環境変数として定義する必要がありますANT_HOME.

サンプルbuild.xmlファイルは下のように示されています:

LISTING 1 – Sample build.xml file –

[Code]

<?XMLバージョン=”1.0″?>

<プロジェクト名=”Antのテスト” デフォルト=”メイン” BASEDIR =”.”>

<!– 後で使用できる変数を設定します。. –>

<!– プロパティの値を介してアクセスされます ${} –>

<プロパティ名=”src.dir” 場所=”SRC” />

<プロパティ名=”build.dir” 場所=”bin” />

<プロパティ名=”dist.dir” 場所=”DIST” />

<プロパティ名=”docs.dir” 場所=”ドキュメント” />

<!– 既存のビルドを削除します。, ドキュメントとdistディレクトリ–>

<ターゲット名=”クリーン”>

<= DIRを削除”${build.dir}” />

<= DIRを削除”${docs.dir}” />

<= DIRを削除”${dist.dir}” />

</ターゲット>

<!– ビルドを作成します。, ドキュメントとdistディレクトリ–>

<ターゲット名=”MAKEDIR”>

<MKDIR DIR =”${build.dir}” />

<MKDIR DIR =”${docs.dir}” />

<MKDIR DIR =”${dist.dir}” />

</ターゲット>

<!– Javaコードをコンパイルします (JUnitのためのライブラリの使用を含みます –>

<ターゲット名=”compile” =依存”クリーン, MAKEDIR”>

<javac SRCDIR =”${src.dir}” DESTDIR =”${build.dir}”>

</javacの>

</ターゲット>

<!– Javadocを作成します。 –>

<ターゲット名=”ドキュメント” =依存”compile”>

<Javadocのパッケージ名=”SRC” ソースパス=”${src.dir}” DESTDIR =”${docs.dir}”>

<!– どのファイルを定義します。 / ディレクトリが含まれるはずです, 我々はすべて含まれ –>

<ファイルセットDIR =”${src.dir}”>

<=名を含めます”**” />

</ファイルセット>

</Javadocの>

</ターゲット>

<!–展開可能なjarファイルを作成します。 –>

<ターゲット名=”jar” =依存”compile”>

<ジャーのdestFile =”${dist.dir}\in.kolkalta.build.test.ant.jar” BASEDIR =”${build.dir}”>

<マニフェスト>

<属性名=”主なクラス” 値=”test.Main” />

</マニフェスト>

</jar>

</ターゲット>

<ターゲット名=”メイン” =依存”compile, jar, ドキュメント”>

<説明>主要目標</説明>

</ターゲット>

</プロジェクト>

[/Code]









ANT with JUnit

Antはテスト駆動開発手法を使用するJava開発者に大きな助けを提供. 私たちは、テスト駆動開発の方法論JUNITに知っているように強制され, 我々は一度にすべてのJUnitテストケースを実行する自動化スクリプトを使用している場合、それは常に追加された利点であります. Not only that this script can also be used if we have a continuous integration tool e.g Hudson. 私たちの次のサンプルコードは、JUnitを使用し、ANTを使用する方法を示し.

LISTING 2 – A Sample java file –

[Code]

package com.home.junit;

公共 クラス SampleAdd {

公共 int型 加える(int型 X, int型 と) {

リターン X + と;

}

}

[/Code]

LISTING 3 – The corresponding JUNIT file –

[Code]

パッケージcom.home.junit;

輸入org.junit.After;

輸入org.junit.Assert;

輸入org.junit.Before;

輸入org.junit.Test;

パブリッククラスSampleAddTest {

プライベートSampleAdd sampleClass;

@前

公共ボイドのsetUp() {

sampleClass =新しいSampleAdd();

}

@テスト

公共ボイドtestAdd() {

Assert.assertEquals(5, sampleClass.add(3, 2));

}

@After

公共ボイドsettleDown() {

sampleClass = NULL;

}

}

[/Code]

LISTING 4 – The ANT script to compile and run the JUNIT test –

[Code]

<?XMLバージョン=”1.0″?>

<プロジェクト名=”JUNIT” デフォルト=”メイン” BASEDIR =”..”>

<!– 後で使用できる変数を設定します。. –>

<!– プロパティの値を介してアクセスされます ${} –>

<プロパティ名=”src.dir” 場所=”SRC” />

<プロパティ名=”test.dir” 場所=”テスト” />

<プロパティ名=”build.dir” 場所=”bin” />

<プロパティ名=”build.test.dir” 場所=”ビン/テスト” />

<!– JUnitのTESTINのために使用される変数 –>

<プロパティ名=”test.report.dir” 場所=”カスタマイズポート” />

<!– junit.jarをとコンパイル後のクラスが含まれてクラスパスを定義します。–>

<パスID =”junit.class.path”>

<pathelement場所=”LIB / JUnitの-4.11.jar” />

<pathelement場所=”LIB / hamcrestコア-1.3.jar” />

<pathelement場所=”${build.dir}” />

</パス>

<!– 既存のビルドを削除します。, ドキュメントとdistディレクトリ–>

<ターゲット名=”クリーン”>

<= DIRを削除”${build.dir}” />

<= DIRを削除”${test.report.dir}” />

</ターゲット> <!– ビルドを作成します。, ドキュメントとdistディレクトリ–>

<ターゲット名=”MAKEDIR”>

<MKDIR DIR =”${build.dir}” />

<MKDIR DIR =”${build.test.dir}” />

<MKDIR DIR =”${test.report.dir}” />

</ターゲット>

<!– Javaコードをコンパイルします (JUnitのためのライブラリの使用を含みます –>

<ターゲット名=”compile” =依存”クリーン, MAKEDIR”>

<javac SRCDIR =”${src.dir}” DESTDIR =”${build.dir}”>

<クラスパスREFID =”junit.class.path” />

</javacの>

<javac SRCDIR =”${test.dir}” DESTDIR =”${build.test.dir}”>

<クラスパスREFID =”junit.class.path” />

</javacの>

</ターゲット>

<!– JUnitテストを実行します。 –>

<!– 出力はXMLです, また、無地かもしれません–>

<ターゲット名=”JUnitの” =依存”compile”>

<JUnitのprintsummary =”on” フォーク=”真” haltonfailure =”はい”>

<クラスパスREFID =”junit.class.path” />

<クラスパス>

<pathelement場所=”${build.test.dir}”/>

</クラスパス>

<フォーマッタタイプ=”XML” />

<batchtest todirの=”${test.report.dir}”>

<ファイルセットDIR =”${test.dir}”>

<=名を含めます”**/*テスト*の.javaファイル” />

</ファイルセット>

</batchtest>

</JUnitの>

</ターゲット>

<ターゲット名=”メイン” =依存”compile, JUnitの”>

<説明>主要目標</説明>

</ターゲット>

</プロジェクト>

[/Code]

私たちは、このスクリプトを実行すると、, it first compile the codebase and then runs the junit tests on the compiled code and finally generates a test report. 試験報告書は、任意の形式で生成することができます. 利便性のために我々は、XML形式でこれを生成しました.

LISTING 5 – The Generated test report in XML format –

[Code]

<?XMLバージョン=”1.0″ エンコーディング=”UTF-8″?>

-<テストスイートのタイムスタンプ=”2013-10-26T18:52:45″ 時間=”0.077″ テストの=”1″ 名前=”com.home.junit.SampleAddTest” ホスト名=”INDTAPPL132-001″ 障害=”0″ エラー=”0″>-<properties><プロパティ名=”java.vendor” 値=”オラクル・コーポレーション”/><プロパティ名=”sun.java.launcher” 値=”SUN_STANDARD”/><プロパティ名=”eclipse.pdebuild.templates” 値=”/F:/Utpal/Softs/Softs/eclipse-java-indigo-win32/eclipse/plugins/org.eclipse.pde.build_3.7.0.v20110512-1320/templates/”/><プロパティ名=”sun.management.compiler” 値=”HotSpotのクライアントコンパイラ”/><プロパティ名=”os.name” 値=”Windows 7の″/><プロパティ名=”sun.boot.class.path” 値=”C言語:\プログラムファイルのJava jre7 libに resources.jar;C言語:\プログラムファイルのJava jre7 libに rt.jarの;C言語:\プログラムファイルのJava jre7 libに sunrsasign.jar;C言語:\プログラムファイルのJava jre7 libにのjsse.jar;C言語:\プログラムファイルのJava jre7 libに jce.jar;C言語:\プログラムファイルのJava jre7 libに charsets.jar;C言語:\プログラムファイルのJava jre7 libに jfr.jar;C言語:\プログラムファイルのJava jre7 クラス”/><プロパティ名=”sun.desktop” 値=”窓”/><プロパティ名=”java.vm.specification.vendor” 値=”オラクル・コーポレーション”/><プロパティ名=”ant.home” 値=”F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipsepluginsorg.apache.ant_1.8.2.v20110505-1300″/><プロパティ名=”java.runtime.version” 値=”1.7.0_45-b18″/><プロパティ名=”user.name” 値=”utpalb”/><プロパティ名=”build.dir” 値=”F:\WorkRnDSpaceJunitbin”/><プロパティ名=”user.language” 値=”en”/><プロパティ名=”test.report.dir” 値=”F:\WorkRnDSpaceJunittestreport”/><プロパティ名=”sun.boot.library.path” 値=”C言語:\Program FilesJavajre7bin”/><プロパティ名=”ant.project.default-target” 値=”メイン”/><プロパティ名=”ant.project.name” 値=”JUNIT”/><プロパティ名=”java.version” 値=”1.7.0_45″/><プロパティ名=”user.timezone” 値=””/><プロパティ名=”sun.arch.data.model” 値=”32″/><プロパティ名=”java.endorsed.dirs” 値=”C言語:\Program FilesJavajre7libendorsed”/><プロパティ名=”sun.cpu.isalist” 値=”pentium_pro mmx pentium_pro pentium mmx pentium i486 i386 i86″/><プロパティ名=”sun.jnu.encoding” 値=”Cp1252″/><プロパティ名=”file.encoding.pkg” 値=”sun.io”/><プロパティ名=”file.separator” 値=”\”/><プロパティ名=”java.specification.name” 値=”Java Platform API Specification”/><プロパティ名=”java.class.version” 値=”51.0″/><プロパティ名=”user.country” 値=”US”/><プロパティ名=”java.home” 値=”C言語:\Program FilesJavajre7″/><プロパティ名=”java.vm.info” 値=”mixed mode, sharing”/><プロパティ名=”ant.file” 値=”F:\WorkRnDSpaceJunitbuildbuild.xml”/><プロパティ名=”os.version” 値=”6.1″/><プロパティ名=”path.separator” 値=”;”/><プロパティ名=”java.vm.version” 値=”24.45-b08″/><プロパティ名=”user.variant” 値=””/><プロパティ名=”ant.library.dir” 値=”F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipsepluginsorg.apache.ant_1.8.2.v20110505-1300lib”/><プロパティ名=”java.awt.printerjob” 値=”sun.awt.windows.WPrinterJob”/><プロパティ名=”sun.io.unicode.encoding” 値=”UnicodeLittle”/><プロパティ名=”ant.file.type.JUNIT” 値=”ファイル”/><プロパティ名=”awt.toolkit” 値=”sun.awt.windows.WToolkit”/><プロパティ名=”user.script” 値=””/><プロパティ名=”ant.file.JUNIT” 値=”F:\WorkRnDSpaceJunitbuildbuild.xml”/><プロパティ名=”eclipse.pdebuild.scripts” 値=”/F:/Utpal/Softs/Softs/eclipse-java-indigo-win32/eclipse/plugins/org.eclipse.pde.build_3.7.0.v20110512-1320/scripts/”/><プロパティ名=”user.home” 値=”C言語:\Usersutpalb”/><プロパティ名=”java.specification.vendor” 値=”オラクル・コーポレーション”/><プロパティ名=”test.dir” 値=”F:\WorkRnDSpaceJunittests”/><プロパティ名=”java.library.path” 値=”C言語:\Program FilesJavajre7bin;C言語:\WindowsSunJavabin;C言語:\Windowssystem32;C言語:\Windowsの;C言語:/Program Files/Java/jre7/bin/client;C言語:/Program Files/Java/jre7/bin;C言語:/Program Files/Java/jre7/lib/i386;C言語:\Windowssystem32;C言語:\Windowsの;C言語:\WindowsSystem32Wbem;C言語:\WindowsSystem32WindowsPowerShellv1.0;C言語:\Program FilesJavajdk1.6.0_10bin;それ:\apache-ant-1.8.2-binapache-ant-1.8.2bin;C言語:\Program FilesLiquid TechnologiesLiquid XML Studio 2011XmlDataBinder9Redist9cppwin32bin;C言語:\Program FilesTortoiseSVNbin;それ:\Program FilesAndroidandroid-sdkplatform-tools;それ:\Program FilesAndroidandroid-sdktools;C言語:\Program FilesQuickTimeQTSystem;D:\SunAppServerbin;9;F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipse;;.”/><プロパティ名=”java.vendor.url” 値=”HTTP://java.oracle.com/”/><プロパティ名=”java.vm.vendor” 値=”オラクル・コーポレーション”/><プロパティ名=”java.runtime.name” 値=”ジャワ(TM) SE Runtime Environment”/><プロパティ名=”sun.java.command” 値=”org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner com.home.junit.SampleAddTest filtertrace=true haltOnError=false haltOnFailure=true formatter=org.apache.tools.ant.taskdefs.optional.junit.SummaryJUnitResultFormatter showoutput=false outputtoformatters=true logfailedtests=true logtestlistenerevents=false formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,F:\WorkRnDSpaceJunittestreportTEST-com.home.junit.SampleAddTest.xml crashfile=F:\WorkRnDSpaceJunitjunitvmwatcher6288340937110531134.properties propsfile=F:\WorkRnDSpaceJunitjunit7583515827572177542.properties”/><プロパティ名=”java.class.path” 値=”F:\WorkRnDSpaceJunitlibjunit-4.11.jar;F:\WorkRnDSpaceJunitlibhamcrest-core-1.3.jar;F:\WorkRnDSpaceJunitbin;F:\WorkRnDSpaceJunitbintests;F:\WorkRnDSpaceJunit;C言語:\Program FilesJavajdk1.6.0_10jrelibrt.jar;F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipsepluginsorg.apache.ant_1.8.2.v20110505-1300libant-launcher.jar;F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipsepluginsorg.apache.ant_1.8.2.v20110505-1300libant.jar;F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipsepluginsorg.apache.ant_1.8.2.v20110505-1300libant-junit.jar;F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipsepluginsorg.apache.ant_1.8.2.v20110505-1300libant-junit4.jar”/><プロパティ名=”ant.version” 値=”Apache Ant(TM) version 1.8.2 compiled on December 20 2010″/><プロパティ名=”java.vm.specification.name” 値=”Java Virtual Machine Specification”/><プロパティ名=”java.vm.specification.version” 値=”1.7″/><プロパティ名=”sun.cpu.endian” 値=”little”/><プロパティ名=”sun.os.patch.level” 値=”Service Pack 1″/><プロパティ名=”eclipse.pdebuild.home” 値=”/F:/Utpal/Softs/Softs/eclipse-java-indigo-win32/eclipse/plugins/org.eclipse.pde.build_3.7.0.v20110512-1320/./”/><プロパティ名=”java.io.tmpdir” 値=”C言語:\UsersutpalbAppDataLocalTemp”/><プロパティ名=”java.vendor.url.bug” 値=”HTTP://bugreport.sun.com/bugreport/”/><プロパティ名=”os.arch” 値=”x86″/><プロパティ名=”java.awt.graphicsenv” 値=”sun.awt.Win32GraphicsEnvironment”/><プロパティ名=”java.ext.dirs” 値=”C言語:\Program FilesJavajre7libext;C言語:\WindowsSunJavalibext”/><プロパティ名=”user.dir” 値=”F:\WorkRnDSpaceJunitbuild”/><プロパティ名=”build.test.dir” 値=”F:\WorkRnDSpaceJunitbintests”/><プロパティ名=”line.separator” 値=” “/><プロパティ名=”java.vm.name” 値=”Java HotSpot(TM) Client VM”/><プロパティ名=”basedir” 値=”F:\WorkRnDSpaceJunit”/><プロパティ名=”ant.java.version” 値=”1.7″/><プロパティ名=”ant.core.lib” 値=”F:\UtpalSoftsSoftseclipse-java-indigo-win32eclipsepluginsorg.apache.ant_1.8.2.v20110505-1300libant.jar”/><プロパティ名=”file.encoding” 値=”Cp1252″/><プロパティ名=”java.specification.version” 値=”1.7″/><プロパティ名=”src.dir” 値=”F:\WorkRnDSpaceJunitsrc”/><プロパティ名=”ant.project.invoked-targets” 値=”メイン”/></properties><testcase time=”0.003″ 名前=”testAdd” classname=”com.home.junit.SampleAddTest”/>-<system-out>

<![CDATA[]]>

</system-out>-<system-err>

<![CDATA[]]>

</system-err></testsuite>

[/Code]







結論

  • Apache Antを以下の目的のためにJava開発者が使用するJavaベースのユーティリティ :
    • To generate the binaries from the source code
    • To generate javadocs for the source code
    • To run JUNIT test cases on a code base
  • ANT in collaboration with JUNIT, helps the java developers to follow the Test Driven Development methodology

 

Tagged on: ,
============================================= ============================================== Amazonで最高のTechAlpine Booksを購入してください,en,電気技師CT栗,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share