自动执行单元测试(NUnit)的简单应用
2007-09-23 18:59
232 查看
学些了一段时间的单元测试(NUnit),对于小型的项目还用得马马虎虎,觉得在界面跑单元测试还是很容易上手的.但是最近深入了解了一些关于单元测试的理论,知道一个好的单元测试并不是靠手动去执行的,而是应该自动的执行.为了学得更加专业点,同时也想看看这个代码的自动编译是怎么回事.最终牵涉到了NAnt.这个工具早已听说过,就是没有用过,还一直觉得用起来会很麻烦,毕竟用习惯了IDE.
简单学习了一下NAnt,发现这个工具似乎与NUnit有着紧密的相联,更觉得有趣的是NAnt以一种任务式的方式去执行项目编译,还不会暂很大内存,毕竟还是命令行工具.比起IDE编译时,那种近似死机的状态好(编译大项目).Nant的任务都配置在一个XML文件里,只要简单配置下,就可以执行N多项目的编译,之后还可以顺带执行其他程序.也许有人会说,这不就是批处理.理论上说批处理也可以编译N多文件,麻烦而已.不过,Nant的功能不仅仅是编译个项目,还附带有很多函数,深入研究的话,当作一门语言来学也不为过.
当然好的单元测试,自动执行只是其中一个条件,另外更需要有合理的测试用例,将继续学习.............
以下是*.build文件的内容,自动编译主项目和单元测试项目,最后自动执行单元测试.
<?xml version="1.0" encoding="utf-8"?>
2<project name="MyProject" basedir="." default="run" xmlns="http://nant.sf.net/release/0.85/nant.xsd">
3 <!--依次配置主项目文件和测试项目的文件,及单元测试文件路径-->
4 <!--所有文件路径以文件*.build所在路径为根目录-->
5 <property name="MyProject.dir" value=".\MyProject"/>
6 <property name="MyProject.bin" value="${MyProject.dir}\bin"/>
7 <property name="MyProject.lib" value="${MyProject.dir}\lib"/>
8 <property name="MyProjectTest.dir" value=".\MyProjectTest"/>
9 <property name="MyProjectTest.bin" value="${MyProjectTest.dir}\bin"/>
10 <property name="MyProjectTest.lib" value="${MyProject.dir}\lib"/>
11 <property name="NUnit.exe" value=".\NUnit\nunit-console.exe"/>
12 <property name="MyProjectTest.nunit" value="MyProjectTest.nunit"/>
13 <!--执行任务-->
14 <target name="run">
15 <call target="BuildProject"/>
16 <call target="BuildProjectTest"/>
17 <call target="RunNunit"/>
18 </target>
19 <!--编译主项目-->
20 <target name="BuildProject">
21 <echo message="Building MyProject"/>
22 <solution configuration="Debug" outputdir="${MyProject.bin}">
23 <projects>
24 <include name="${MyProject.dir}\MyProject.csproj"/>
25 </projects>
26 <assemblyfolders basedir="${MyProject.lib}"/>
27 </solution>
28 </target>
29 <!--编译测试项目-->
30 <target name="BuildProjectTest">
31 <echo message="Building MyProjectTest"/>
32 <solution configuration="Debug" outputdir="${MyProjectTest.bin}">
33 <projects>
34 <include name="${MyProjectTest.dir}\MyProjectTest.csproj"/>
35 </projects>
36 <assemblyfolders basedir="${MyProjectTest.lib}"/>
37 </solution>
38 </target>
39 <!--执行单元测试-->
40 <target name="RunNunit">
41 <echo message="Executing Nuni Test"/>
42 <exec program="${NUnit.exe}">
43 <arg value="${MyProjectTest.nunit}"/>
44 </exec>
45 </target>
46</project>
简单学习了一下NAnt,发现这个工具似乎与NUnit有着紧密的相联,更觉得有趣的是NAnt以一种任务式的方式去执行项目编译,还不会暂很大内存,毕竟还是命令行工具.比起IDE编译时,那种近似死机的状态好(编译大项目).Nant的任务都配置在一个XML文件里,只要简单配置下,就可以执行N多项目的编译,之后还可以顺带执行其他程序.也许有人会说,这不就是批处理.理论上说批处理也可以编译N多文件,麻烦而已.不过,Nant的功能不仅仅是编译个项目,还附带有很多函数,深入研究的话,当作一门语言来学也不为过.
当然好的单元测试,自动执行只是其中一个条件,另外更需要有合理的测试用例,将继续学习.............
以下是*.build文件的内容,自动编译主项目和单元测试项目,最后自动执行单元测试.
<?xml version="1.0" encoding="utf-8"?>
2<project name="MyProject" basedir="." default="run" xmlns="http://nant.sf.net/release/0.85/nant.xsd">
3 <!--依次配置主项目文件和测试项目的文件,及单元测试文件路径-->
4 <!--所有文件路径以文件*.build所在路径为根目录-->
5 <property name="MyProject.dir" value=".\MyProject"/>
6 <property name="MyProject.bin" value="${MyProject.dir}\bin"/>
7 <property name="MyProject.lib" value="${MyProject.dir}\lib"/>
8 <property name="MyProjectTest.dir" value=".\MyProjectTest"/>
9 <property name="MyProjectTest.bin" value="${MyProjectTest.dir}\bin"/>
10 <property name="MyProjectTest.lib" value="${MyProject.dir}\lib"/>
11 <property name="NUnit.exe" value=".\NUnit\nunit-console.exe"/>
12 <property name="MyProjectTest.nunit" value="MyProjectTest.nunit"/>
13 <!--执行任务-->
14 <target name="run">
15 <call target="BuildProject"/>
16 <call target="BuildProjectTest"/>
17 <call target="RunNunit"/>
18 </target>
19 <!--编译主项目-->
20 <target name="BuildProject">
21 <echo message="Building MyProject"/>
22 <solution configuration="Debug" outputdir="${MyProject.bin}">
23 <projects>
24 <include name="${MyProject.dir}\MyProject.csproj"/>
25 </projects>
26 <assemblyfolders basedir="${MyProject.lib}"/>
27 </solution>
28 </target>
29 <!--编译测试项目-->
30 <target name="BuildProjectTest">
31 <echo message="Building MyProjectTest"/>
32 <solution configuration="Debug" outputdir="${MyProjectTest.bin}">
33 <projects>
34 <include name="${MyProjectTest.dir}\MyProjectTest.csproj"/>
35 </projects>
36 <assemblyfolders basedir="${MyProjectTest.lib}"/>
37 </solution>
38 </target>
39 <!--执行单元测试-->
40 <target name="RunNunit">
41 <echo message="Executing Nuni Test"/>
42 <exec program="${NUnit.exe}">
43 <arg value="${MyProjectTest.nunit}"/>
44 </exec>
45 </target>
46</project>
相关文章推荐
- Calendar针对于相隔一段时间自动执行的简单应用
- 简单的Struts2的Interceptors(拦截器)机制介绍以及利用拦截器实现用户登陆时执行耗时操作并自动跳转的实例
- Android入门进阶教程(8)-常用组件 打电话,发短信简单应用 &单元测试
- 工作流Activiti的学习总结(八)Activiti自动执行的应用
- JaCoCo+Maven+Jenkins自动执行单元测试并生成代码覆盖率报告
- Android文本自动提示框的简单应用实例
- android四大组件基础介绍及打电话,发短信简单应用 &单元测试
- 【最简单】Electron 怎么将网页打包成桌面应用(web前端页面怎么生成exe可执行文件) 标签: 跨平台node.js桌面应用electronelectron-packager 2017-04-
- 使用rebar构建工程、执行单元测试、自动生成项目文档
- 项目总结--maven+springsecurity+solr+springmvc+hibernate 延迟加载处理+hibernate sql对象处理(sql执行插入)+spring注解方式+邮件 + JNDI+项目框架写法+jasperreprot的简单应用
- 一个简单的执行程序的GNU automake自动生成Makefile的方法及案例
- 单元测试——NUnit工具安装及简单运用
- 简单st 4000 ruts应用执行流程
- Spring-boot中添加commandLineRunner之后,写单元测试会自动执行commandLineRunner的解决方案
- jenkins自动部署应用到tomcat中,编译后shell脚本的简单示例
- VS2008单元测试之NUnit集成与应用
- 【最简单】Electron 怎么将网页打包成桌面应用(web前端页面怎么生成exe可执行文件)
- SSH框架之Struts的有关执行流程的面试题、配置上的共性问题、简单应用-用户登陆
- 在VS2005下应用NUnit进行关于数据库的单元测试
- 一个简单的脚本,实现自动执行MITM攻击(更新0.2)