当前位置: 首页 > 编程日记 > 正文

在C# Express 2005中配置 NUnit

C# Express 2005中配置 NUnit

www.cnblogs.com/Pamigo/ 2008-7-28

在网上有很多关于在C#中使用NUnit的相关文章,但是我安装了NUnit后却不知道在C# Express中应该如何配置,相信很多人也遇到了同样的问题。根据自己的摸索总结了一下,希望对大家有所帮助。配置工作可以分为两部分,首先是在IDE环境中添加解决方案,使我们能够方便的在各个配置方案中自由切换,其次是在项目中增加Nunit的类库的引用。

一、IDE环境中添加解决方案。

1. 首先我们打开工程配置文件(*.csproj)

我们可以看到文件中包含DebugRelease两个解决方案的配置信息。

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">

<DebugSymbols>true</DebugSymbols>

<DebugType>full</DebugType>

<Optimize>false</Optimize>

<OutputPath>bin"Debug"</OutputPath>

<DefineConstants>DEBUG;TRACE</DefineConstants>

<ErrorReport>prompt</ErrorReport>

<WarningLevel>4</WarningLevel>

</PropertyGroup>

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">

<DebugType>pdbonly</DebugType>

<Optimize>true</Optimize>

<OutputPath>bin"Release"</OutputPath>

<DefineConstants>TRACE</DefineConstants>

<ErrorReport>prompt</ErrorReport>

<WarningLevel>4</WarningLevel>

</PropertyGroup>

2. 我们可以看到在Release配置信息后,添加下列配置内容

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'UnitTest|AnyCPU'">

<DebugType>full</DebugType>

<Optimize>false</Optimize>

<OutputPath>bin"UnitTest"</OutputPath>

<Nunit_Path Condition="'$(NUNIT_PATH)' == ''">C:"Program Files"NUnit 2.4.6</Nunit_Path>

<StartAction>Program</StartAction>

<StartProgram>$(NUNIT_PATH)"bin"nunit.exe</StartProgram>

<StartArguments>/run $(TargetFileName)</StartArguments>

<DefineConstants>UNIT_TEST</DefineConstants>

</PropertyGroup>

其中的红色部分可以自己定义。[UnitTest]是我们要添加的配置信息的名称。Nunit_Path中设置的[C:"Program Files"NUnit 2.4.6]Nunit的安装路径。DefineConstants中设置的[UNIT_TEST]是我们在程序中要用到的条件编译符号。

3. 接下来我们打开C#工程,在解决方案上点击右键。看看多了什么?没错这里多了一个[配置管理器]选项。

4. 我们选择配置管理器菜单,弹出了配置管理器窗口。

目前这里还没有刚才我们在工程配置文件(*.csproj)中添加的UnitTest,别着急接着往下看。

5. 下拉菜单中选择<新建>,填入解决方案名称[UnitTest](要根配置文件中的名称一致哦)

从此复制保持<>就行,然后点击确定。

6. 由于我们刚才已经在(*.csproj)中手动加入了UnitTest方案的相关配置信息,所以点击[确定]后就不需要再填入其他信息了。UnitTest方案创建成功,点击关闭。

如下图所示,现在我们已经可以在IDE环境中,通过选择菜单自由切换配置方案了。

添加解决方案还有另外一种方法

1.打开配置管理器选项

工具>选项>显示所有设置>项目和解决方案>显示高级生成配置

这样[生成]菜单中就会多出一个[配置管理器]菜单,点击此菜单,添加UnitTest解决方案。

2.按照先前的说明,在工程配置文件(*.csproj)中手动修改UnitTest的解决方案配置信息。

二、接下来,我们来添加对Nunit的类库引用

1. 在工程解决方案管理器总的[引用]文件夹上单击鼠标右键,在弹出的快捷菜单中点击[添加引用]

2. 在添加引用窗口中选择“nunit.framework”,单击[确定]

如下图所示,现在Nunit的类库引用已经被添加到我们的工程中了。

3. 为了在没有安装Nnuit的机器中也能够进行除了单元测试以外的正常开发,我们还要对工程配置文件(*.csproj)进行一些手动配置。

首先我们关闭项目窗口,用文本编辑器打开工程配置文件(*.csproj),可以看到刚才我们添加的对nunit.framework类库的引用。

<ItemGroup>

    <Reference Include="nunit.framework, Version=2.4.6.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL" />

<Reference Include="System" />

<Reference Include="System.Data" />

<Reference Include="System.Deployment" />

<Reference Include="System.Drawing" />

<Reference Include="System.Windows.Forms" />

<Reference Include="System.Xml" />

</ItemGroup>

我们将nunit.framework的相关设置信息抽出来,放到一个单独得ItemGroup中,并添加条件选项,只有在解决方案是UnitTest的时候才引用nunit.framework类库。

<ItemGroup>

<Reference Include="System" />

<Reference Include="System.Data" />

<Reference Include="System.Deployment" />

<Reference Include="System.Drawing" />

<Reference Include="System.Windows.Forms" />

<Reference Include="System.Xml" />

</ItemGroup>

 <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'UnitTest|AnyCPU'">

    <Reference Include="nunit.framework, Version=2.4.6.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL" />

 </ItemGroup>

另外,我们在测试用例类的程序代码中还要加入(#if UNIT_TEST … #endif)的条件编译符。

好了,终于配置完成了,我们来看看效果。

这样当我们选择UnitTest解决方案时,这段测试代码为有效,nunit.framework类库也会被引用。

F5运行程序,Nuit的测试窗口会自动弹出,并进行自动单元测试。

我们在测试用例代码中加个断点试试。瞧,一切OK,可以调试测试代码了。

当我们选择Debug配置方案时,程序测试用例类程序代码会变为无效,nunit.framework类库也不会被引用。

我们再按F5运行程序,就会真正运行我们的项目工程了。

另外还有一点需要注意,在编写单元测试用例我们在改写了测试代码后一定要重新编译一下(如下图所示,点击生成命令)然后再按F5运行测试程序,最新的测试用例才会生效。

转载于:https://www.cnblogs.com/Pamigo/archive/2008/07/30/1256777.html

相关文章:

如何利用离散Hopfield神经网络进行数字识别(2)

如何利用离散Hopfield神经网络进行数字识别

SQL语句实现取消自增列属性

由于在SQL-SERVER中&#xff0c;自增列属性不能直接修改&#xff0c;但可以通过以下方式变向实现 1、如果仅仅是指定值插入&#xff0c;可用以下语句&#xff0c;临时取消 SET IDENTITY_INSERT TableName ONINSERT INTO tableName(xx,xx) values(xx,xx)SET IDENTITY_INSERT Tab…

Mac OS 提高工作效率的几个快捷键

Mac OS X 命令行中组快捷键 几组导航快捷键 跳至行首 – ControlA 跳至行尾 – ControlE 跳至上一个单词 – Control<- 跳至下一个单词 – Control-> 跳至下一行 – ControlN 跳至上一行 – ControlP 删除上一个单词 – ControlW 删除当前光标位置到行首的文字 – Cont…

什么是离散的Hopfield网络?

什么是离散的Hopfield网络&#xff1f;

《OpenStack实战》——第1章 介绍OpenStack 1.1OpenStack是什么

本节书摘来自异步社区《OpenStack实战》一书中的第1章&#xff0c;第1.1节&#xff0c;作者&#xff1a; 【美】V. K. Cody Bumgardner&#xff08;V. K. 科迪•布姆加德纳&#xff09;著&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 第一部分 入门指南 本…

【转】 一些NET的实用类,不错

http://www.cnblogs.com/9who/archive/2008/08/01/1258248.html转载于:https://www.cnblogs.com/niuniu502/archive/2008/08/01/1258331.html

/dev/null

把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用. 禁止标准输出. 1 cat $filename >/dev/null2 # 文件内容丢失&#xff0c;而不会输出到标…

backup restore On Ubuntu

详见&#xff1a;https://help.ubuntu.com/community/BackupYourSystem/TAR 在 使用Ubuntu之前&#xff0c;相信很多人都有过使用Windows系统的经历。如果你备份过Windows系统&#xff0c;那么你一定记忆犹新&#xff1a;首先需要找到一个备份工 具(通常都是私有软件)&#xff…

.net 连接ORACLE 数据库的例子

利用 System.Data.OracleClient.Dll 的组件进行连接&#xff1a; 首先配置WebConfig 文件&#xff1b; <connectionStrings> <add name"oracleconn" connectionString"Data Source"";User IDryq;Password123456" providerName&quo…

什么是SESSION?(一)

本图文通过三个问题的回答&#xff0c;详细介绍了Session的机制。本图文由钟锦提供。

linux下字符串处理工具一:grep

grep常见选项 grep -A &#xff1a;显示匹配行和之后的几行 grep -A 4 "NullPointerException" test.log 找到NullPointerException之后的几行-c &#xff1a;打印匹配到的行数 c:count[adminv069164233.sqa.<pre name"code" class"html"&…

Matlab与随机变量和样本的数字特征

本文主要介绍了常见分布的期望和方差以及样本的数字特征。贡献人为孔令才。

C#的方法的参数修饰符详解

方法参数修饰 (啥也没有) 如果参数的修饰是啥也没有&#xff0c;那么其参数传递的方式是值传递&#xff0c;接受方收到的是原始数据的拷贝 out 说明了参数是引用传递。 params 可变参&#xff0c;注意了这种修饰符针对的参数一定是最后一个参数 ref 引用传递&#xff0c;参数的…

wps 2016 个人版 重新开始编号

wps文档重新开始编号&#xff0c;继续编号&#xff0c;自定义编号 首先选中这一行鼠标右键选中项目符号和编号单击项目符号和编号&#xff0c;你可以重新开始编号为1&#xff0c;继续前一列表&#xff0c;还可自定义&#xff0c;单击确定按钮就可以实现你想要的结果效果图转载于…

Sublime Text保存文件时自动去掉行末空格

1.安装DeleteBlankLines 插件 通过ctrlshiftp组合键打开命令面板 输入install packge后回车 输入DeleteBlankLines后回车进行安装 Sublime Tex去除空白行插件DeleteBlankLines 上文所述安装DeleteBlankLines插件的前提&#xff1a;Package Control已经安装好。 3.Subl…

六步使用ICallbackEventHandler实现无刷新回调

AJAX技术所提倡的无刷新回调&#xff0c;在原来的技术中需要写大量的JavaScript代码或使用一些AJAX框架&#xff0c;使得开发效率和可维护性大大降低。其实ASP.NET2.0中&#xff0c;已经提供了这样的接口&#xff0c;这就是ICallbackEventHandler。关于ICallbackEventHandler网…

Matlab与线性代数 -- 矩阵的特征值与特征向量

本图文详细介绍了Matlab中求方阵特征值与特征向量的方法。

mybatis3进行模糊查询的总结

一种直接采用函数进行模糊查询&#xff0c;直接在映射文件中书写对应的like语句。 例如&#xff1a; select * from u_tree ut where ut.node_name like concat(concat(‘%,#{text}),’%&#xff09; 第二种方式&#xff1a; 使用 ${...} 代替 #{...} SELECT * FROM tableName …

linux下字符串处理工具二:awk(1)

awk工作原理 原理图 第一步&#xff1a;awk对文件或管道的内容一次只处理一次&#xff0c;将获取到的这一行赋给内部变量$0。 第二步&#xff1a;这一行的内容按awk内部变量FS定义的分隔符&#xff0c;缺省为空格(包括tab制表符)分解成字段&#xff0c;每一段存储在从$1开…

后台接口向数据库录入汉字时乱码以及自动过滤文字经验总结

本人第一次写博客&#xff0c;而且是一个菜鸟&#xff0c;如果有什么不完善的地方请前辈们多多指教。 2017-06-01 21:56:05 因为公司功能的需求&#xff0c;需要写一个溯源信息的接口&#xff0c;下面的代码是前台的一个用户评论的界面。所谓溯源就是追溯源头&#xff0c;有点类…

PHP新手上路(六)

5.5 计数器 让我们在首页上加上一个计数器。这个例子已经被讲过多次了&#xff0c;但是还是有利于演示怎样读写文件以及创建自己的函数。counter.inc包含以下代码&#xff1a; <? /* || 一个简单的计数器 */ function get_hitcount($counter_file) { /…

如何教计算机认识手写数字(下)

本文详细介绍了如何利用C#语言编写KDTree结构加速KNN算法来处理手写字符的识别问题。本文由安晟提供。

linux下字符串处理工具二:awk( 二),awk脚本

awk脚本 awk脚本是一个可执行的文件&#xff0c;常习惯以.awk命名。 结构&#xff1a; $test.awk #!/bin/awk -f #脚本系统中awk的位置BEGIN{} #脚本主体之前&#xff0c;执行些什么。该行内的语句&#xff0c;可以只执行一次{} #脚本主体,此中的语句&am…

JavaScript正则表达式test的用法

<script LANGUAGE"javascript">function checkStr( s)...{var regu /abc/gi;var re new RegExp(regu);return re.test(s);}checkMobile(vabceeabc);</script>用途&#xff1a;检查输入的字符串是否含有abc,如果有返回true,否则返回false方法test(string…

如何利用C#开发“通讯录”小程序

本文介绍了数理系15级魏道鑫同学汇报的成果&#xff0c;利用C#开发的通讯录小程序。

Ubuntu 16.04 install NVDIA display driver

2019独角兽企业重金招聘Python工程师标准>>> 1. search and download the driver http://www.nvidia.cn/Download/ 2. vim /etc/modprobe.d/blacklist.conf append this lines to the file blacklist vga16fb blacklist nouveau blacklist rivafb blacklist rivatv …

C#Hello World

自己是做java开发的&#xff0c;但是有时候有些问题用java解决起来很不方便&#xff0c;比如调用windows系统的东西&#xff0c;所以要快速自学一下C#&#xff0c;快速解决一个问题。 下面是一个简单的控制台程序。 using System; //using 关键字的作用是导入命名空间 using Sy…

如何利用离散Hopfield神经网络进行高校科研能力评价(1)

如何利用离散Hopfield神经网络进行高校科研能力评价(1)代码部分

OpenDNS 不再向用户展示广告

OpenDNS是流行的免费域名解析服务提供商&#xff0c;它的收入一度主要来自广告&#xff0c;当用户输入的网址无法解析它会将用户重定向到广告页。在OpenDNS诞生前&#xff0c;ISP提供的域名解析是用户唯一的选择。但ISP的DNS服务称不上有多好&#xff0c;不怎么可靠。但如今&am…

winform配置文件的简单使用(转载)

1&#xff0e; 首先创建一个winform解决方案2&#xff0e; 与添加类文件相同的方法添加配置文件&#xff0c;比如&#xff1a;右击解决方案下的项目名称—>添加—>新建项—>选择 “应用程序配置文件”&#xff0c;.net默认文件名为app.config&#xff0c;点击确定 打开…