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

单元测试及NUnit测试框架简介(二)一、单元测试框架的选择在选择单元测试框架时,可以从以下几个方面去考虑:支持自动检测注册用例:框架能否支持简单地构造用例并自动注册测试用例到测试框架中;支持测试Fixture:即是否支持为一组测试

一、单元测试框架的选择

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

  • 支持自动检测注册用例:框架能否支持简单地构造用例并自动注册测试用例到测试框架中;
  • 支持测试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(

今天的文章单元测试及NUnit测试框架简介(二)分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/75987.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注