Ant项目配置与测试用例管理

1. 下载ant工具包 (http://www.fayea.com/apache-mirror//ant/binaries/apache-ant-1.9.0-bin.zip)

2. 配置ant环境变量(ant存放路径)

ANT_HOME::C:\Program Files\Java\apache-ant-1.9.0

PATH:%ANT_HOME%/bin

3. 查看是否安装成功:在dos窗口中输入命令ant,若出现结果

Buildfile: build.xml does not exist!

Build failed

说明ant安装成功,因为ant默认运行build.xml,这个需要我们自己建立。

4. 在项目中新建build.xml文件

<project basedir="." default="default" name="automation test">
	<!--工程根目录-->
	<property name="base.dir" value="." />
	<!--测试结果输出路径-->
	<property name="testng.output.dir" value="${base.dir}/test-output" />
	<!--工程引用包-->
	<property name="lib.dir" value="${base.dir}/lib" />
	<!--class文件存放位置-->
	<property name="classes.dir" value="classes" />
	<property name="src.dir" value="src" />
	<property name="run.test.classes.dir" value="${base.dir}/bin/com/zzt/test" />
	<property name="testng.threadcount" value="1"/>

	<!--清除-->
	<target name="clean">
		<delete dir="${base.dir}/bin" />
	</target>

	<!--编译工程所需的jar包-->
	<path id="classes">
		<fileset dir="${lib.dir}" includes="*jar" />
		<fileset dir="${lib.dir}" includes="*zip" />
		<pathelement location="${base.dir}/bin" />
	</path>

	<!--copy项目所需要的xml及properties文件-->
	<target name="compile" depends="clean">
		<mkdir dir="${base.dir}/bin" />
		<javac srcdir="${base.dir}/src" destdir="${base.dir}/bin" classpathref="classes" includeantruntime="off" debug="on" debuglevel="lines,vars,source" />
		<!--将配置文件拷贝到bin目录下-->
		<copy todir="${base.dir}/bin">
			<fileset dir="${src.dir}">
				<include name="**/*.xml" />
				<include name="**/*.properties" />
			</fileset>
			<fileset dir="${base.dir}">
				<include name="**/*.xml" />
				<include name="**/*.properties" />
			</fileset>
		</copy>
	</target>


	<!--此处很重要,如果你要运行的case是testNG,必须配置-->
	<taskdef resource="testngtasks" classpath="${lib.dir}/testng-6.2.jar" />
	<!--调用的TestNG用例执行xml文件,这里是文件名-->
	<property name="testng.file" value="testNG.xml" />
	<!--默认情况下的缺省任务-->
	<target name="default" depends="compile">
		<testng outputdir="${testng.output.dir}" classpathref="classes" delegateCommandSystemProperties="true">
			<xmlfileset dir="${base.dir}" includes="${testng.file}" />
		</testng>
	</target>

	<!--根据命令行传参,运行指定的case,eg. ant test-single -Dtest.class=TestNG-->
	<target name="test-single"
	            description="Compile tests and Run a single test specified by -Dtest.class"
	            depends="compile">
		<condition property="test.class" value="${env.TEST_CLASS}">
			<isset property="env.TEST_CLASS"/>
		</condition>
        <condition property="run.test" value="**/${test.class}.class">
            <isset property="test.class"/>
        </condition>
   		<testng outputdir="${testng.output.dir}" classpathref="classes" delegateCommandSystemProperties="true">
			<classfileset dir="${base.dir}" includes="${run.test}" />
		</testng>
	</target>

	<!--多线程,eg. ant test-all -Dtestng.threadcount=4-->
	<target name="test-all" description="run all tests with multi-thread" depends="compile">
		<testng classpathref="classes" suiteThreadPoolSize="${testng.threadcount}" parallel="classes" threadCount="${testng.threadcount}">
			<classfileset dir="${base.dir}" includes="**/*Tests.class" />
		</testng>
	</target>
</project>

对应testNG.xml:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite" parallel="false">
	<test name="Test" preserve-order="true">
		<!-- 分组测试,这里只是对TestNG中的属于组Test1的方法进行测试 -->
<!-- 		<groups> -->
<!-- 			<run> -->
<!-- 				<include name="Test2"></include> -->
<!-- 			</run> -->
<!-- 		</groups> -->
		<classes>
<!-- 			<class name="com.zzt.test.AntTestNG1Tests" /> -->
			<class name="com.zzt.test.AntTestNG2Tests" />
		</classes>

		<!-- 对指定的方法进行测试 -->
<!-- 		<classes> -->
<!-- 			<class name="com.zzt.test.AntTestNGTest"> -->
<!-- 				<methods> -->
<!-- 					<include name="testMethod1"></include> -->
<!-- 				</methods> -->
<!-- 			</class> -->
<!-- 		</classes> -->

	</test>
</suite>

附件Ant_TestNG_Test.zip为该项目源码(含 testng-6.2.jar)

猜你喜欢

转载自zhangzhenting.iteye.com/blog/1837484