using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework; //安装好NUnit后,环境是XP的,发现无法启动,修改一下配置后才能运行 //修改NUnit.exe.config,在
//1. 在 <configuration> 下 加
// <startup>
// <requiredRuntime version="v4.0.30319" />
// </startup>
// 2. 在 <runtime> 加 // <runtime> // ……
// <loadFromRemoteSources enabled="true" />
// ……
// </runtime>
namespace Nunit
{
[TestFixtureAttribute]
//用来修饰测试类。这个属性标记一个类包含了测试方法。
//被TestFixtureAttribute修饰的类需满足以下限制
// a.必须是一个public类型,否则NUnit不会识别它。
// b.它必须有一个缺省的构造子,否则Nunit不能构建他。
// c.构造子不应该有任何方面的负面影响,因为在一个对话的过程中,NUnit可能构造类多次。
public class Program
{
int a = ;
int b = ;
[Test]
// 用来修饰测试方法。Test属性标记某个类的某个方法为一个测试方法,而且此类必需已经标记为一个TestFixture
static void Main(string[] args)
{
}
//用来修饰方法。所属的类必需已经标记为一个TestFixture。一个TestFixture可以仅有一个SetUp方法。如果有多个定义, TestFixture也会编译成功,但是测试不会运行。SetUpAttribute标记的方法是在每个测试方法被调用之前来完成的。
[TestFixtureSetUp]
//用来修饰方法。所属的类必需已经标记为一个TestFixture。这些个属性标记的方式在fixture任何测试执行之前完成。 TestFixture可以仅有一个TestFixtureSetUp方法。如果定义了多个,TestFixture可以成功编译,但是测试不会被执行。
public void TextInital()
{//初始化a,可以初始化数据连接等
a = ;
Console.WriteLine("测试开前执行一次");
Console.WriteLine("a=10");
}
// 用来修饰方法。所属的类必需已经标记为一个TestFixture。这些个属性标记的方式在fixture任何测试执行之后完成。TestFixture 可以仅有一个TestFixtureTearDownAttribute方法。如果定义了多个,TestFixture可以成功编译,但是测试不会被执行。 [TestFixtureTearDown] public void TextDispose()
{//初始化a,可以初始化数据连接等 Console.WriteLine("测试完成后执行一次");
} [SetUp]
public void BeforeEvery() {
b=;
Console.WriteLine("b=1");
Console.WriteLine("每个方法测试开始前都执行我");
} // 用来修饰方法。所属的类必需已经标记为一个TestFixture。一个TestFixture可以仅有一个TearDown方法。如果有多个定义, TestFixture也会编译成功,但是测试不会运行。被TearDownAttribute修饰的方法是每个测试方法被调用之后来执行的。 [TearDown]
public void afterEvery() {
b = ;
Console.WriteLine("b = 0");
Console.WriteLine("每个方法测试完成后都执行我");
} [Test]
public void Add()
{
bool t = a == ;
Assert.AreEqual(true, t);
} [Test, ExpectedException(typeof(ArgumentException))]
public void Sub()
{
int a = ;
int b = / a;
Assert.AreEqual(true, true);
} //修饰方法或修饰类。用来把测试分组,可以使用NUnit的Categories选项卡选择要测试的组,或排除一些组。
[Test]
[Category("group1")]
public void g1a()
{ Assert.AreEqual(true, true);
}
[Test]
[Category("group1")]
public void g1b()
{
Assert.AreEqual(true, true);
} [Test]
[Category("group2")]
public void g2a()
{ Assert.AreEqual(false, true);
}
[Test]
[Category("group2")]
public void g2b()
{
Assert.AreEqual(false, true);
} [Test]
public void withfixture()
{
Assert.AreEqual(true, (b == ));
} [Test]
[Explicit]
//用来修饰类或方法。Explicit属性会忽略一个测试或测试Fixture,直到它被显式的选择运行。。如果test和test fixture在执行的过程中被发现,就忽略他们。所以,这样一来进度条显示为黄色,因为有test或test fixture忽略了。
public void withoutfixture()
{
Assert.AreEqual(true, (b == ));
} [Test]
[Ignore]
// 用来修饰类或方法。由于种种原因,有一些测试我们不想运行.当然,这些原因可能包括你认为这个测试还没有完成,这个测试正在重构之中,这个测试的需求不是太明确.但你有不想破坏测试,不然进度条可是红色的哟.怎么办?使用Ignore属性.你可以保持测试,但又不运行它们。
//这个特性用来暂时不运行一个测试或fixture。比起注释掉测试或重命名方法,这是一个比较好的机制,因为测试会和余下的代码一起编译,而且在运行时有一个不会运行测试的标记,这样保证不会忘记测试。 public void Ignore()
{
Assert.AreEqual(true, true);
} }
}

执行结果如下

测试开前执行一次
a=10
***** Nunit.Program.Add
b=1
每个方法测试开始前都执行我
b = 0
每个方法测试完成后都执行我
***** Nunit.Program.g1a
b=1
每个方法测试开始前都执行我
b = 0
每个方法测试完成后都执行我
***** Nunit.Program.g1b
b=1
每个方法测试开始前都执行我
b = 0
每个方法测试完成后都执行我
***** Nunit.Program.Sub
b=1
每个方法测试开始前都执行我
b = 0
每个方法测试完成后都执行我
***** Nunit.Program.withfixture
b=1
每个方法测试开始前都执行我
b = 0
每个方法测试完成后都执行我
测试完成后执行一次

Nunit说明及简单DEMO的更多相关文章

  1. 设计模式之单例模式的简单demo

    /* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...

  2. Spring的简单demo

    ---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...

  3. 使用Spring缓存的简单Demo

    使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...

  4. Managed DirectX中的DirectShow应用(简单Demo及源码)

    阅读目录 介绍 准备工作 环境搭建 简单Demo 显示效果 其他 Demo下载 介绍 DirectX是Microsoft开发的基于Windows平台的一组API,它是为高速的实时动画渲染.交互式音乐和 ...

  5. angular实现了一个简单demo,angular-weibo-favorites

    前面必须说一段 帮客户做了一个过渡期的项目,唯一的要求就是速度,我只是会点儿基础的php,于是就用tp帮客户做了这个项目.最近和客户架构沟通,后期想把项目重新做一下,就用现在最流行的技术,暂时想的使用 ...

  6. Solr配置与简单Demo[转]

    Solr配置与简单Demo 简介: solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目.它的官方网址在http://lucene.apache.org/sol ...

  7. 二维码简单Demo

    二维码简单Demo 一.视图 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name=&qu ...

  8. android JNI 简单demo(2)它JNI demo 写

    android JNI 简单demo(2)它JNI demo 写 一.搭建Cygwin 环境:http://blog.csdn.net/androidolblog/article/details/25 ...

  9. Ext简单demo示例

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

随机推荐

  1. Android自定义的弹窗

    package com.microduino.qoobot.view; import android.app.Activity; import android.app.Dialog; import a ...

  2. PAT Advanced 1033 To Fill or Not to Fill (25) [贪⼼算法]

    题目 With highways available, driving a car from Hangzhou to any other city is easy. But since the tan ...

  3. java8新特性-函数式接口详细讲解及案例

    一.函数式接口 1.1 概念 函数式接口在Java中是指:有且仅有一个抽象方法的接口.函数式接口,即适用于函数式编程场景的接口.而Java中的函数式编程体现就是Lambda,所以函数式接口就是可 以适 ...

  4. Akka Typed系列:协议&行为

    引言 2019年11月6号LightBend公司发布了AKKA 2.6版本,带来了类型安全的actor,新的Akka Cluster底层通信设施——Artery,带来了更好的稳定性,使用Jackson ...

  5. centos7 安装gdb (调试nginx)

    首先卸载原有的gdb,sudo yum remove gdb 从gnu官网下载最新的gdb源文件,wget http://mirrors.ustc.edu.cn/gnu/gdb/gdb-7.9.1.t ...

  6. Web前端学习方向

    第一部分 HTML 第一章 职业规划和前景 职业方向规划定位: web前端开发工程师 web网站架构师 自己创业 转岗管理或其他 web前端开发的前景展望: 未来IT行业企业需求最多的人才 结合最新的 ...

  7. python3 subprocess 内存操作视频转换流格式

    import subprocessout = open('./tmp/sss.mp4','rb').read()p = subprocess.Popen(["./ffmpeg",& ...

  8. LeetCode——264. 丑数 II

    编写一个程序,找出第 n 个丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例: 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 ...

  9. GO、 智能合约、cannot use transactionRecordId + strconv.Itoa(id) (type string) as type byte in append

    1.报错详情 2.在写fabric go智能合约发送的错误,像我这样的新手就是踩坑踩坑踩坑 3.下面是代码片段 4.研究了一下append用法.也看了下GO语言官网文章: var test_str [ ...

  10. Tidb go mac 上开发环境搭建

    1.安装golang 运行环境 2.安装lite ide 工具 3.安装dep 包管理工具 4.安装delve debuger 调试工具 我用的是mac hight sierra 10.13 版, 会 ...