单元测试及NUnit测试框架简介(二)

一、单元测试框架的选择

在选择单元测试框架时,可以从以下几个方面去考虑:

  • 支持自动检测注册用例:框架能否支持简单地构造用例并自动注册测试用例到测试框架中;
  • 支持测试Fixture:即是否支持为一组测试用例建立统一的脚手架,方便测试用例的上下文构造;
  • 强大的断言系统:是否提供强大的断言系统,供使用者在用例中描述期望;
  • 灵活的Test Suite定义:可以支持灵活的对测试用例分组;
  • 测试能力:是否支持异常测试以及参数测试;
  • 测试filter定义:可以支持灵活的命令行参数,对运行用例进行分组和过滤;
  • 测试结果及报表生成:是否可以生成易于阅读的测试结果报告以及报表文件;
  • 用例依赖管理:是否支持编辑用例的依赖关系,让用例之间互相组合,但是又不破坏每个用例的独立性;
  • 沙盒模式:是否支持测试用例的沙盒模式,降低每个测试用例上下文清理的工作;
  • 是否开源:包括公开的文档和社区的支持是否全面;

常用的C#单元测试框架有xUnit.Net, NUnit, MSTest(Visual Studio),以下主要介绍NUnit测试框架。

二、NUnit测试框架简介

NUnit是一个开源的单元测试框架,用于.NET framework和Mono框架下进行的单元测试。与JUnit在Java中的作用相同,是xUnit家族中的一员。

三、NUnit测试框架安装(Visual Studio)

NUnit框架安装有以下几种方式:

  1. NUnit完整版安装(通过NuGet)
  2. NUnitLite安装(通过NuGet)
  3. 下载Zip和/或MSI文件
  4. 结合的方法

以下介绍前两种安装方法:

1. NUnit完整版安装(通过NuGet)
  1. 在Visual Studio界面,工具 -> NuGet包管理器 -> 管理解决方案的NuGet程序包;
    在这里插入图片描述

  2. 找到并选择NUnit包,在右侧勾选要添加的项目(测试项目,通常为dll),点击安装。Visual Studio会将包下载到解决方案所在目录的packages文件夹下,并在勾选的项目中引用NUNit framework;
    在这里插入图片描述

  3. 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,并安装;

  4. 确认测试项目引用了nunit.framework。

2. NUnitLite安装(通过NuGet)

NUnitLite是一种轻量化的安装方式,不用安装NUnit runner和test engine assemblies。仅需要安装NUnit framework和一个小型的runner即可。

  1. 创建一个控制台程序项目作为测试项目;
  2. 与NUnit完整版安装类似,在NuGet包管理器中搜索并安装NUnit和NUnitLite;
  3. 安装完之后,确认测试项目引用了nunit.framework和nunitlite;
  4. 一个"Program.cs"的文件会被拷贝到测试项目中,里面包括一个程序入口函数Main(),如果测试项目中已存在Main()函数,可以删掉这个文件,但是需要按照下面的格式配置Main()函数,来启动nunitlite runner;
public static int Main(string[] args)
{
   
  return new AutoRun().Execute(args);
}
  1. 写好测试用例后,启动测试项目就可以了。

四、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(
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值