自动执行单元测试(NUnit)的简单应用

学些了一段时间的单元测试(NUnit),对于小型的项目还用得马马虎虎,觉得在界面跑单元测试还是很容易上手的.但是最近深入了解了一些关于单元测试的理论,知道一个好的单元测试并不是靠手动去执行的,而是应该自动的执行.为了学得更加专业点,同时也想看看这个代码的自动编译是怎么回事.最终牵涉到了NAnt.这个工具早已听说过,就是没有用过,还一直觉得用起来会很麻烦,毕竟用习惯了IDE.
简单学习了一下NAnt,发现这个工具似乎与NUnit有着紧密的相联,更觉得有趣的是NAnt以一种任务式的方式去执行项目编译,还不会暂很大内存,毕竟还是命令行工具.比起IDE编译时,那种近似死机的状态好(编译大项目).Nant的任务都配置在一个XML文件里,只要简单配置下,就可以执行N多项目的编译,之后还可以顺带执行其他程序.也许有人会说,这不就是批处理.理论上说批处理也可以编译N多文件,麻烦而已.不过,Nant的功能不仅仅是编译个项目,还附带有很多函数,深入研究的话,当作一门语言来学也不为过.
当然好的单元测试,自动执行只是其中一个条件,另外更需要有合理的测试用例,将继续学习.............

以下是*.build文件的内容,自动编译主项目和单元测试项目,最后自动执行单元测试.

*.build
 1<?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>

转载于:https://www.cnblogs.com/shenba/archive/2007/09/23/903390.html

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页