一、单元测试框架的选择
在选择单元测试框架时,可以从以下几个方面去考虑:
- 支持自动检测注册用例:框架能否支持简单地构造用例并自动注册测试用例到测试框架中;
- 支持测试Fixture:即是否支持为一组测试用例建立统一的脚手架,方便测试用例的上下文构造;
- 强大的断言系统:是否提供强大的断言系统,供使用者在用例中描述期望;
- 灵活的Test Suite定义:可以支持灵活的对测试用例分组;
- 测试能力:是否支持异常测试以及参数测试;
- 测试filter定义:可以支持灵活的命令行参数,对运行用例进行分组和过滤;
- 测试结果及报表生成:是否可以生成易于阅读的测试结果报告以及报表文件;
- 用例依赖管理:是否支持编辑用例的依赖关系,让用例之间互相组合,但是又不破坏每个用例的独立性;
- 沙盒模式:是否支持测试用例的沙盒模式,降低每个测试用例上下文清理的工作;
- 是否开源:包括公开的文档和社区的支持是否全面;
常用的C#单元测试框架有xUnit.Net, NUnit, MSTest(Visual Studio),以下主要介绍NUnit测试框架。
二、NUnit测试框架简介
NUnit是一个开源的单元测试框架,用于.NET framework和Mono框架下进行的单元测试。与JUnit在Java中的作用相同,是xUnit家族中的一员。
三、NUnit测试框架安装(Visual Studio)
NUnit框架安装有以下几种方式:
- NUnit完整版安装(通过NuGet)
- NUnitLite安装(通过NuGet)
- 下载Zip和/或MSI文件
- 结合的方法
以下介绍前两种安装方法:
1. NUnit完整版安装(通过NuGet)
-
在Visual Studio界面,工具 -> NuGet包管理器 -> 管理解决方案的NuGet程序包;
-
找到并选择NUnit包,在右侧勾选要添加的项目(测试项目,通常为dll),点击安装。Visual Studio会将包下载到解决方案所在目录的packages文件夹下,并在勾选的项目中引用NUNit framework;
-
NUnit单元测试可以使用NUnit框架自带的runner运行,也可以集成到Visual Studio的测试平台上,使用Microsoft提供的的runner运行。这两种方式需要安装不同的NuGet包:
使用NUnit框架自带的runner:在NuGet包管理器中搜索NUnit.Console,并安装。安装完之后,就可以在packages\NUnit.ConsoleRunner.3.X.X\tools中找到unit3-console并运行;
使用Microsoft提供的的runner:在NuGet包管理器中搜索NUnit3TestAdapter,并安装;
-
确认测试项目引用了nunit.framework。
2. NUnitLite安装(通过NuGet)
NUnitLite是一种轻量化的安装方式,不用安装NUnit runner和test engine assemblies。仅需要安装NUnit framework和一个小型的runner即可。
- 创建一个控制台程序项目作为测试项目;
- 与NUnit完整版安装类似,在NuGet包管理器中搜索并安装NUnit和NUnitLite;
- 安装完之后,确认测试项目引用了nunit.framework和nunitlite;
- 一个”Program.cs”的文件会被拷贝到测试项目中,里面包括一个程序入口函数Main(),如果测试项目中已存在Main()函数,可以删掉这个文件,但是需要按照下面的格式配置Main()函数,来启动nunitlite runner;
public static int Main(string[] args)
{
return new AutoRun().Execute(args);
}
- 写好测试用例后,启动测试项目就可以了。
四、NUnit框架常用Attributes
[TestFixture]
标识一个测试类
[Test]
标识一个测试方法(对于非参数化的测试,为一个测试用例)
[TestFixture]
public class SuccessTests
{
// A simple test
[Test]
public void Add()
{
/* ... */ }
}
[TestCase]
在参数化测试中,标识一个测试用例(可以包含输入和预期数据)
[TestCase(12, 3, 4)]
[TestCase(12, 2, 6)]
[TestCase(
今天的文章单元测试及NUnit测试框架简介(二)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/75987.html