国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - Asp.Net Core利用文件監視進行快速測試開發詳解

Asp.Net Core利用文件監視進行快速測試開發詳解

2020-06-05 16:23Ron.liang ASP.NET教程

這篇文章主要給大家介紹了關于Asp.Net Core利用文件監視進行快速測試開發的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

在進行 Asp.Net Core 應用程序開發過程中,通常的做法是先把業務代碼開發完成,然后建立單元測試,最后進入本地系統集成測試;在這個過程中,程序員的大部分時間幾乎都花費在開發、運行、調試上,而且一再的重復這個過程,我稱這個過程為“程序員開發螺旋”,并且在這個步驟中,重復率最高且沒有創造力的工作就是啟動、測試,作為程序員,努力提高生產力我們追求的目標,我們的工作就是盡量消滅重復勞動,解放生產力,提高產出效率;

下面就通過一個簡單的例子來演示,如何通過文件監視進行快速開發。

本示例將會使用兩個項目用作演示,如下圖

Asp.Net Core利用文件監視進行快速測試開發詳解

1. 建立業務項目 UserCenterDemo

1.1 在 UserCenterDemo.HomeController 里面編寫一個簡單的業務方法

?
1
2
3
4
5
6
7
8
9
10
[Route("api/[controller]")]
[ApiController]
public class HomeController : ControllerBase
{
[HttpGet("{id}")]
public IActionResult Get(int id)
{
int code = 0;
string userName = string.Empty;
switch (id)

該業務方法非常簡單,僅根據傳入的 id 值進行判斷,如果不是 100 則返回 code=403

2. 建立 xUnit 單元測試項目 UserCenterDemoTest

2.1 引用項目 UserCenterDemo 和引用 NuGet 包

?
1
2
Microsoft.AspNetCore.App
Microsoft.AspNetCore.TestHost

UserCenterDemo 使用了主機集成測試方式,對主機集成測試不了解到同學,可以查看我上一篇博客: Asp.Net Core 輕松學-利用xUnit進行主機級別的網絡集成測試.

2.2 編寫測試用例 UserCenterDemoTest.HomeControllerTest.cs

?
1
2
3
4
5
6
7
8
9
10
public class HomeControllerTest
{
public static TestServer serverHost;
public static HttpClient client;
public HomeControllerTest()
{
if (serverHost == null)
{
serverHost = new TestServer(new WebHostBuilder().UseStartup<UserCenterDemo.Startup>());
client = serverHost.CreateClient();

該測試包含兩個測試方法,分別是獲取 id=100 的用戶和 id=0 的 Guest 用戶

3. 使用 dotnet watch 進行監視測試

按照以往的開發習慣,我們現在應該做的事情可能有兩個,一是啟動項目使用瀏覽器進行訪問業務接口 Get ,二是運行單元測試,不管怎么樣,這兩個動作都將消耗我們大量的時間

現在,有一種全新的選擇,我們可以通過使用 dotnet watch test 對項目文件進行監視變動,自動運行單元測試,并將測試結果輸出到控制臺

3.1 打開 cmd.exe 程序,切換到測試項目目錄 UserCenterDemoTest,輸入 dotnet watch test,等待運行

Asp.Net Core利用文件監視進行快速測試開發詳解

上圖表示,當我們輸入命令 dotnet watch test 后,監視程序正在啟動,并在啟動完成后立即執行了一次單元測試,紅色方框部分表示有 2 個測試用例已通過,然后程序并沒有退出,而是在最后輸出了一個提示,正在等待文件變動以重啟 dotnet 應用程序

3.2 接下來我們修改測試用例 GetGuestTest 的斷言結果 code=0,看看發生了什么

Asp.Net Core利用文件監視進行快速測試開發詳解

可以看到,在修改完成保存文件的瞬間,程序立即重啟生成,然后執行測試,測試結果斷言不通過
那么問題來了,上面只是監視了測試項目,如果我們修改了 UserCenterDemo.Controllers ,能夠自動監視嗎,答案是肯定的

3.3 現在修改 UserCenterDemo.Controllers ,修改獲取 Guest 的 code=0,返回成功

?
1
2
3
4
5
6
7
8
9
10
[Route("api/[controller]")]
[ApiController]
public class HomeController : ControllerBase
{
[HttpGet("{id}")]
public IActionResult Get(int id)
{
int code = 0;
string userName = string.Empty;
switch (id)

輸出結果,已自動監視執行

Asp.Net Core利用文件監視進行快速測試開發詳解

為什么會這樣呢,因為我們的測試項目引用了業務項目 UserCenterDemo
所以可以監視到,查看 UserCenterDemoTest.csproj 文件,起作用的是以下代碼

?
1
2
3
<ItemGroup>
<ProjectReference Include="..\UserCenterDemo\UserCenterDemo.csproj" />
</ItemGroup>

5. 擴展使用

5.1 如果你覺得總是不停的輸出各種信息讓你覺得很不友好,那么你可以排除監視,比如移除對 UserCenterDemo.csproj 的監視,只需要增加配置 Watch="false" 即可

?
1
2
3
<ItemGroup>
<ProjectReference Include="..\UserCenterDemo\UserCenterDemo.csproj" Watch="false"/>
</ItemGroup>

5.2 獨立監視

當項目比較大的時候,我們可能需要對監視項目進行管理,這個時候再逐一的對每個項目進行監視設置就變得非常的麻煩,然后我們就可以建立一個單獨的文件夾,創建一個 watch.csproj 文件,填如下面的內容

?
1
2
3
4
5
6
7
8
9
<Project>
 <ItemGroup>
 <TestProjects Include="..\**\*.csproj" />
 <Watch Include="..\**\*.cs" />
 </ItemGroup>
 
 <Target Name="WatchManage">
 <MSBuild Targets="VSTest" Projects="@(TestProjects)" />
 </Target>

5.3 注意路徑,因為本示例的目錄結構是這樣

Asp.Net Core利用文件監視進行快速測試開發詳解

所以文件中的監視節點我必須加入 .. 回退到上一級,上面的代碼表示,監視上一級目錄下的 .csproj/.cs 文件變動,并為本次監視管理命名為:WatchManage

5.4 現在進入目錄 watch 輸入命令 dotnet watch msbuild /t:WatchManager

Asp.Net Core利用文件監視進行快速測試開發詳解

可以看到,已經成功對兩個項目進行變動監視

  • 通過本示例,我們了解到如何在項目開發過程中減少重復勞動,提高生產力的方法
  • 學習了 dotnet watch test 的使用方法
  • 掌握了在應對項目繁多的時候,建立獨立文件監視管理器的方法

示例代碼下載UserCenterDemo.rar

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://www.cnblogs.com/viter/p/10098668.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 一区二区三区www. | 国产精品久久久久久久久久久久冷 | 91在线看黄 | 国产白浆在线观看 | av免费观看网站 | 日韩在线观看一区 | 一级毛片视频 | 九九九久久久久久 | 中文字幕在线影院 | 国产精品美女久久久av超清 | 亚洲精品视频播放 | 日韩一级大片 | 亚洲精品久久久久久下一站 | 自拍偷拍亚洲 | 久久国产精品系列 | 午夜在线小视频 | 四虎成人免费电影 | 亚洲成av人片在线观看无码 | 亚洲第一av | 亚洲激情 欧美 | 福利网址 | 国产欧美日韩一级大片 | 久久九 | 免费在线成人 | 91久久精品国产 | 精品久久久久久国产 | 国产精品一区一区三区 | 欧洲精品码一区二区三区免费看 | jizzhd中国| 久久精品91久久久久久再现 | 91视频大全 | 毛片免费在线播放 | 久久99久久99精品免观看粉嫩 | 中日韩免费视频 | 日韩一区不卡 | 9l蝌蚪porny中文自拍 | 亚洲精品乱码久久久久久金桔影视 | 在线视频中文字幕 | 欧美在线a | 中文精品在线 | av在线播放不卡 |