Nunit 使用介绍
Nunit是.NET平台单元测试框架,其是从Junit发展而来,它强大之处是支持所有的.NET语言。
Nunit的下载地址:http://www.nunit.org
介绍1:
布局:
- 左面:我们写的每一个单元测试
- 右边:测试进度条
- 测试执行状态:进度条的颜色来反映
- 绿色:所有测试案例运行成功
- 黄色:某些测试被忽略,但没有失败
- 红色:有测试案例没有成功执行
文本窗口标签:
Errors and Failures:显示失败的测试
Tests Not Run:显示没有得到执行的测试
Console.Error:显示运行测试产生的错误消息。这些此消息是应用程序代码使用Console.Error输出流输出的
Console.Out:显示运行测试打印到Console.Error输出流的文本消息
底部状态条:表示当前运行的测试的状态
Ready:准备就绪
Running:测试执行中(Running: test-name)
Completed:所有测试完成时
Test Cases:说明加载的程序集中测试案例的总个数,即测试树里叶子节点的个数
Tests Run:已经完成的测试个数
Failures:到目前为止,所有测试中失败的个数
Time:测试运行时间(以秒计)
介绍2:
常用属性
TestFixture属性:标记该类包含要测试的方法,即为测试类,对该测试类的限制:
- 访问方式必须是Public,否则NUnit看不到它的存在
- 必须有一个缺省的构造函数,否则是NUnit不会构造它
- 构造函数应该没有任何副作用,因为NUnit在运行时经常会构造这个类多次
Test属性:标记某个类(该类已经被标记为TestFixture)的某个方法是可以测试的,对该测试方法的限制:
- 访问方式必须是Public
- 不能有参数
- 不能有返回值
介绍3:
使用
首先,安装Nunit,安装后的运行文件是"nunit.exe", 其目录如 C:\Program Files (x86)\NUnit 2.6.3\bin
其次,新建项目:
1.打开Visual Studio
2.创建一个类库项目
3.在类库项目中添加对“nunit.framework.dll”的引用, 该类库安装位置如:C:\Program Files (x86)\NUnit 2.6.3\bin\framework
4.添加类文件, 在类文件中加入命名空间"using NUnit.Framework;"
5.添加属性(TestFixtrue)到类和(Test)到测试方法,如下:
完成后的类文件如下图:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework; namespace Demo_Nunit
{
[TestFixture]
public class Class1
{
[Test]
public void Add()
{
int a = ;
int b = ;
int sum = a + b;
Assert.AreEqual(sum, );
} [Test]
public void Multiply()
{
int a = ;
int b = ;
int multi = a * b;
Assert.AreEqual(multi, );
} [Test]
[Ignore("This is ignored")]
public void Divid()
{ }
}
}
运行准备
1.点击类库项目,右击,属性
2.选择Debug选项卡,在启动选项(Start Action)中,设置启动外部项目,选择"C:\Program Files (x86)\NUnit 2.6.3\bin\nunit.exe"
3.编译项目,并启动
4.验证NUnit启动了, 选择File, Open Project, 选择编译完成的类库文件。

点击要执行的测试, 点击Run按钮。
介绍4:
断言 Assert
使用Assert(断言)进行比较,是一个类,包括的静态方法有:
1. Assert.AreEqual(object expected, object actual[,string message])
verifies that two objects are equal if they are not equal, an NUnit.Framwork.AssertionException is thrown
参数说明:
expected:期望值(通常是硬编码的)
actual:被测试代码实际产生的值、
message:一个可选消息,将会在发生错误时报告这个消息
比较浮点数(float或double)时,要指定一个额外的误差参数
2. Assert.AreEqual(object expected, object actual, float tolerance[, string message])
参数说明:
tolerance:指定的误差,即精确到小数点后X位 例如:精确到小数点后4位,Assert.AreEqual(0.6667, 2.0/3, 0.0001);
3. Assert.AreNotEqual(object expected, object actual)
asserts that two objects are not equal
4. Assert.AreSame(object expected, object actual[, string message])
asserts that two objects refer to the same object
验证expected和actual两个参数是否引用一个相同的对象
5. Assert.AreNotSame(object expected, object actual[, string message])
asserts that two objects do refer to the same object
6. Assert.IsNull(object[, string message])
7. Assert.IsNotNull(object[, string message])
8. Assert.IsTrue(bool condition [, string message])
9. Assert.IsFalse(bool condition [, string message])
10. Assert.Fail([string message])
使测试立即失败
该断言被用于标记某个不应被到达的分支,实际不常用
Nunit 使用介绍的更多相关文章
- Nunit与Xunit介绍
Nunit安装 首先说下,nunit2.X与3.X版本需要安装不同的vs扩展. nunit2.x安装 安装如上3个,辅助创建nunit测试项目与在vs中运行单元测试用例 . 1.Nunit2 Test ...
- (二)NUnit单元测试心得
现在接着上次说到的内容,如何在项目中进行单元测试.由于做了一些调整,我上次发的内容,我这次也会重新发一次,请认真看看. 一.软件开发过程中存在的问题(没有使用单元测试的情况下) 难于定位bug的位置 ...
- C#单元测试:NUnit详细使用方法
1. TDD的简介 首先什么是TDD呢?Kent Beck在他的<<测试驱动开发 >>(Addison-Wesley Professional,2003)一书中,使用下面2个原 ...
- 单元测试之NUnit一
NUnit 分三篇文章介绍,入门者可阅读文章,有基础者直接参考官方文档.初次写博客,望大家指点. 导航: 单元测试之NUnit一 单元测试之NUnit二 单元测试之NUnit三 NUnit是什么? N ...
- 使用NUnit为游戏项目编写高质量单元测试的思考
0x00 单元测试Pro & Con 最近尝试在我参与的游戏项目中引入TDD(测试驱动开发)的开发模式,因此单元测试便变得十分必要.这篇博客就来聊一聊这段时间的感悟和想法.由于游戏开发和传统软 ...
- 舍弃Nunit拥抱Xunit
前言 今天与同事在讨论.Net下测试框架的时候,说到NUnit等大多数测试框架的SetUp以及TearDown方法并不是显得那么完美,所以在公司内部的项目中采用了Xunit框架.那么究竟是什么样的原因 ...
- Paket 介绍
在国外.NET社区有一个很火的话题是Packet(https://fsprojects.github.io/Paket/index.html ),它本质上是Nuget 之外的另一种方式管理.NET项目 ...
- Jenkins学习三:介绍一些Jenkins的常用功能
Jenkins其实就是一个工具,这个工具的作用就是调用各种其他的工具来达成你的目的. 1.备份.迁移.恢复jenkins 首先找到JENKINS_HOME,因为Jenkins的所有的数据都是以文件的形 ...
- NHibernate简单使用介绍
1.在数据库中新建表格,并插入记录,SQL如下: USE WFC_DB GO create table Students ( Id ,) not null, Name ), Age int, Scor ...
随机推荐
- 5 echo展开
一.(字符)展开 1.echo在标准输出中打印出他的文本 echo this is a test 输出 this is a test 2.输出通配符时,比如*代表匹配文件名的任何字符 echo * 输 ...
- 《Learning Play! Framework 2》学习笔记——案例研究1(Templating System)
注解: 这是对<Learning Play! Framework 2>第三章的学习 本章是一个显示聊天记录的项目,只有一个页面,可以自动对聊天记录进行排序.分组和显示,并整合使用了less ...
- js——页面回到顶部
很久都没有去慕课网学习学习了,刚恰好就看见了一个用的比较多的小例子——页面回到顶部,记得之前自己也是在初学web时,被这个坑了一回,因此今天特地拿来分享分享…… <!DOCTYPE html&g ...
- [转载]WCF实现双工通信
双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息.基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合.双工MEP又具 ...
- mysql 在insert 时防止出现主键冲突错误的方法
在mysql中插入数据的时候常常因为主键存在而冲突报错,下面有两个解决方法: 1.在insert 语句中添加ignore 关键字,如:insert ignore into table (id,name ...
- 第二章 XHTML基础
1.一个网页,也就是一个XHTML文档,是由元素组成.元素定义了文本和图形在XHTML文档中的结构.XHTML文档的扩展名通常是.html或者htm. 2.XHTML元素使用XHTML标记定义,每个标 ...
- Android Phonebook编写联系人UI加载及联系人保存流程(六)
2014-01-07 11:18:08 将百度空间里的东西移过来. 1. Save contact 我们前面已经写了四篇文章,做了大量的铺垫,总算到了这一步,见证奇迹的时刻终于到了. 用户添加了所有需 ...
- svm特征
svm特征格式:<label><index1>:<value1><index1>:<value1>.... 其中<label> ...
- 【NOIP2015】提高组D1 解题报告
P1978神奇的幻方 Accepted 描述 幻方是一种很神奇的 N ∗ N 矩阵:它由数字 1,2,3, … … , N ∗ N 构成,且每行.每列及两条对角线上的数字之和都相同. 当 N 为奇数时 ...
- KING小组
KING——学习小组 小组成员及github地址&博客地址: 张静 https://github.com/loiskris/test.git http://www.cnblogs.com/l ...