如何使用Nunit进行单元测试?

发表于:2018-3-15 08:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:ranh941    来源:博客园

  一、环境
  操作系统Windows版本10.0.1506364位
  集成环境:VisualStudio2017comminity(此后简称vs2017)
  编程语言:C#
  目标框架:.NETFramework4.6.3
  测试框架:NUnit3,涉及到的组件NUnit3TestAdapter(V3.8.0),NUnitVSTemplates(V1.3),TestGeneratorNUnitextension(V2.0)以及NUnit(v3.8.1)。
  单独列出强调:该博客操作只针对上述环境安装NUnit和使用NUnit成功,对其他人只作参考,即使你的环境和我上面描述的环境一模一样,仍有可能安装或者使用失败。请提前做好心理准备。
  二、安装过程
  step0
  点击vs2017菜单栏中的“工具”---》选中“拓展和更新”。
  step1
  点击选项“联机”---》在右侧的搜索栏输入“Nunit”。
  step2
  完成step1操作后,请分别选中NUnit3TestAdapter,NUnitVSTemplates和TestGeneratorNUnitextension,出现下图。标记1/2/3右上角出现一个小时钟。
  step3
  此时关闭vs2017所有界面。稍等1~3秒出现下图。
  选中修改,等待。继续来图,最终安装成功后的界面。
  step4
  重启vs2017,重复step0的操作。点击选项“已安装”---》在右侧的搜索栏输入“Nunit”。出现下图,即说明Nunit前3个组件已安装好。
  三、使用
  step0
  在vs2017中新建一个控制台项目UNitTest。
namespaceUNitTest
{
classProgram
{
publicboolIsValid(intopt)
{
if(opt>100)
{
returntrue;
}
returnfalse;
}
publicintAddData(inta,intb)
{
return(a+b);
}
staticvoidMain(string[]args)
{
}
}
}
  step1
  点击vs2017菜单栏中的“工具”---》选中“NuGet包管理器”---》选中“管理解决方案的NuGet程序包”。
  step2
  完成step1操作后,出现下图。
  点击“浏览”,在搜索栏搜索“NUnit”,选中NUnit(红色标记M,此时版本v3.8.1),H处为你需要导入包的项目,选中你的目标项目(此时为测试项目UNitTest),点击“安装”(K处),确定安装。
  step3
  点击解决方案中的项目名(UNitTest)---》选中“添加”---》选中“新建项”。
  step4
  选中“VisualC#项”---》选中“Test”--->选中“NUnitTestFixture”。测试类的名字“TestClass1.cs”
  step5
  此时还需要启动vs2017的测试资源管理器,否则无法运行测试类。
  点击vs2017菜单栏中的“测试”---》选中“窗口”---》选中“测试资源管理器”。
  完成上述操作,出现下图。
  点击红标1是运行测试类中的所有测试,而红标2则是选择性运行测试类中的测试。
  而如果只想对某个函数运行测试,而不运行其他测试。则是在测试类中选中测试函数名后右击,选择“运行测试”。比如我只想运行测试TestIsValid,而不运行测试TestAddData,选中TestIsValid,右键选择“运行测试”,出现下图。
  step6
  此时就可以通过新建的测试类"TestClass1.cs"对被测试项目UNitTest进行单元测试
  四、可能会遇到的问题
  问题1:出现“仅非测试项目和公共类或公共方法支持“创建单元测试””错误信息。
  截图:
  解决方法:新建测试类或测试项目对测试项目进行单元测试。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号