您的位置:首页 > 其它

自动执行单元测试(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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐