Asp.Net核心使用文件监控快速测试开发
前言
在开发Asp.Net Core应用的过程中,通常的做法是先开发业务代码,然后建立单元测试,最后进入本地系统集成测试;在这个过程中,程序员把大部分时间花在开发、操作和调试上,一遍又一遍地重复这个过程。我把这个过程称为“程序员发展螺旋”,在这一步,重复率最高、没有创造力的工作正在开始和测试。作为程序员,我们努力提高生产力。我们的目标是尽可能消除重复劳动,解放生产力,提高产出效率。
这里有一个简单的例子来演示如何通过文件监控快速开发。
该示例将使用两个项目作为演示,如下图所示
1.建立业务项目用户中心演示
1.1在UserCenterDemo中编写一个简单的业务方法。家庭控制器
[Route(' API/[controller]')][API controller]公共类HomeController : controller base {[HttpGet(' { id } ')]公共IActionResult Get(int id){ int code=0;字符串用户名=字符串。空的;Switch (id)这个商业方法非常简单。它只根据传入的id值进行判断。如果不是100,则返回代码=403
2.建立xUnit单元测试项目用户中心降级测试
2.1参考项目用户中心演示和参考数字获取包
微软。aspnetcore。appmicrosoft。aspnetcore。testhostusercenterdemo使用主机集成测试方法。如果你对主机集成测试一无所知,可以查看我之前的博客:Asp.Net芯易学-用xUnit测试主机级网络集成。
2.2编写测试用例usercentredmotest . homecontrollertest . cs。
公共类HomeControllerTest { public static TestServer serverHost;公共静态HttpClient客户端;public HomeControllerTest(){ if(servershost==null){ servershost=new TestServer(new WebHostBuilder(). usestartupuser centeredemo . startup());客户端=服务器主机。create client();该测试包括两种测试方法,即获取id=100的用户和id=0的Guest用户
3.使用dotnet watch进行监控和测试
按照以往的发展习惯,现在可能有两件事我们应该做。一个是启动项目并使用浏览器访问业务界面Get,另一个是运行单元测试。无论如何,这两个动作会消耗我们很多时间。
现在,有了一个全新的选择。我们可以通过使用dotnet watch测试来监控项目文件的变化,自动运行单元测试,并将测试结果输出到控制台
3.1打开cmd.exe程序,切换到测试项目目录用户中心降级测试,进入dotnet watch测试,等待它运行
上图显示,当我们输入命令dotnet watch test时,监视器程序正在启动,启动后立即执行单元测试。红色方框表示已经通过了两个测试用例,然后程序并没有退出,而是最后输出一个提示,等待文件更改来重新启动dotnet应用程序。
3.2接下来,我们修改测试用例GetGuestTest的断言结果代码=0,看看发生了什么
可以看到,在文件修改保存的瞬间,程序立即重启生成,然后执行测试。测试结果断言它失败了,所以问题来了。以上仅监控测试项目。如果我们修改用户中心演示。控制器,能自动监控吗?答案是肯定的。
3.3现在修改用户中心演示。控制器,修改得到的Guest=0的代码=0,返回成功
[Route(' API/[controller]')][API controller]公共类HomeController : controller base {[HttpGet(' { id } ')]公共IActionResult Get(int id){ int code=0;字符串用户名=字符串。空的;开关(id)的输出结果,已被自动监控和执行
为什么会这样?因为我们的测试项目引用了业务项目UserCenterDemo,所以我们可以监视和查看UserCenterDemoTest.csproj文件,下面的代码可以工作
项目组项目引用包含='.\ user center demo \ user center demo . cs proj//item group 5。延长使用
5.1如果觉得一直输出各种信息不友好,可以排除监控,比如去掉UserCenterDemo.csproj的监控,只需添加配置Watch='false '
项目组项目引用包含='.\ user center demo \ user center demo . csproj ' watch=' false '/item group 5.2独立监控
当项目比较大的时候,我们可能需要管理监控项目。此时,逐个设置每个项目的监控设置变得非常麻烦。然后我们可以设置一个单独的文件夹,并创建一个watch.csproj文件,该文件的填写如下
项目项目组测试项目包括='.\**\*.csproj'/Watch Include='.\**\ *.cs '/item group target name=' watch manager ' msbuild targets=' vstest ' projects=' @(test projects)'//target 5.3注意路径,因为这个例子的目录结构是这样的
因此,我必须加入文件中的监控节点.回到之前的水平。上述代码表明。csproj/。对上一级目录中的cs文件进行监控,这种监控管理被命名为chamber manager
5.4现在进入目录watch,输入命令dotnet watch msbuild/t : watch manager
可以看出,两个项目已经成功地进行了变更监控。
通过这个例子,我们知道了在项目开发过程中如何减少重复工作,提高生产力,学习了dotnet watch test的使用,掌握了在处理很多项目时建立独立的文件监控管理器的方法。示例代码下载:http://xiazai.jb51.net/201812/yuanma/UserCenterDemo_jb51.rar
摘要
以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。有问题可以留言交流。谢谢你的支持。
版权声明:Asp.Net核心使用文件监控快速测试开发是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。