From fdc79a79a1446afa17acb3bff1840996e55a2298 Mon Sep 17 00:00:00 2001
From: wanggaofeng <15601716045@163.com>
Date: Thu, 23 May 2024 20:17:57 +0800
Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=95=B4=E7=90=86=202=E3=80=81?=
=?UTF-8?q?=E7=B1=BB=E5=BA=93=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../{Utils => Utilities}/StartupUtility.cs | 1 -
.../HttpClientStudy.UnitTest.csproj | 6 +++
HttpClientStudy.UnitTest/UseXunitTest.cs | 15 +++++---
HttpClientStudy.UnitTest/startup.cs | 24 ++++++------
.../Controllers/CallApiController.cs | 6 +++
HttpClientStudy.WebClient/Program.cs | 37 ++++++++-----------
HttpClientStudy.sln | 4 +-
7 files changed, 54 insertions(+), 39 deletions(-)
rename HttpClientStudy.Core/{Utils => Utilities}/StartupUtility.cs (98%)
diff --git a/HttpClientStudy.Core/Utils/StartupUtility.cs b/HttpClientStudy.Core/Utilities/StartupUtility.cs
similarity index 98%
rename from HttpClientStudy.Core/Utils/StartupUtility.cs
rename to HttpClientStudy.Core/Utilities/StartupUtility.cs
index 53c8269..7f59c29 100644
--- a/HttpClientStudy.Core/Utils/StartupUtility.cs
+++ b/HttpClientStudy.Core/Utilities/StartupUtility.cs
@@ -68,7 +68,6 @@ namespace HttpClientStudy.Core.Utils
///
/// 关闭webapi项目
- /// (出现webapi项目启动命令行窗口)
///
public static void ExitWebApiProject()
{
diff --git a/HttpClientStudy.UnitTest/HttpClientStudy.UnitTest.csproj b/HttpClientStudy.UnitTest/HttpClientStudy.UnitTest.csproj
index 47091ea..0dbda1b 100644
--- a/HttpClientStudy.UnitTest/HttpClientStudy.UnitTest.csproj
+++ b/HttpClientStudy.UnitTest/HttpClientStudy.UnitTest.csproj
@@ -20,6 +20,12 @@
+
+
+
+
+
+
diff --git a/HttpClientStudy.UnitTest/UseXunitTest.cs b/HttpClientStudy.UnitTest/UseXunitTest.cs
index 37ecf64..465822c 100644
--- a/HttpClientStudy.UnitTest/UseXunitTest.cs
+++ b/HttpClientStudy.UnitTest/UseXunitTest.cs
@@ -1,4 +1,6 @@
-using Xunit.Abstractions;
+using Microsoft.Extensions.Logging;
+
+using Xunit.Abstractions;
namespace HttpClientStudy.UnitTest
{
@@ -7,17 +9,20 @@ namespace HttpClientStudy.UnitTest
///
public class UseXUnitTest
{
- private readonly ITestOutputHelper _logger;
+ private readonly ITestOutputHelper _testOutput;
+ private ILogger _logger;
- public UseXUnitTest(ITestOutputHelper outputHelper)
+ public UseXUnitTest(ITestOutputHelper outputHelper,ILogger logger)
{
- _logger = outputHelper;
+ _testOutput = outputHelper;
+ _logger = logger;
}
[Fact]
public void UseXUnit_Test()
{
- _logger.WriteLine("使用 xUnit 单元测试框架!");
+ _testOutput.WriteLine("使用 xUnit 单元测试框架!");
+ _logger.LogError("使用 xUnit 单元测试框架!");
Assert.True(true,"使用 xUnit");
}
}
diff --git a/HttpClientStudy.UnitTest/startup.cs b/HttpClientStudy.UnitTest/startup.cs
index 04b9ae9..e7dcf3b 100644
--- a/HttpClientStudy.UnitTest/startup.cs
+++ b/HttpClientStudy.UnitTest/startup.cs
@@ -12,6 +12,8 @@ using Microsoft.AspNetCore.TestHost;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
+using Serilog;
+
using Xunit;
using Xunit.DependencyInjection;
@@ -65,15 +67,9 @@ namespace HttpClientStudy.UnitTest
{
options.PreserveExecutionContext = true;
})
- .ConfigureTestServices(a =>
- {
- Console.WriteLine("+++++++++++++++++++++++++++++++++");
-
- a.BuildServiceProvider().GetRequiredService().ApplicationStopping.Register(() =>
- {
- Console.WriteLine("=========================");
- });
-
+ .ConfigureTestServices(services =>
+ {
+
})
.UseStartup()
;
@@ -88,7 +84,7 @@ namespace HttpClientStudy.UnitTest
{
services.BuildServiceProvider().GetRequiredService().ApplicationStopping.Register(() =>
{
- Console.WriteLine("=========================");
+
});
}
@@ -96,7 +92,13 @@ namespace HttpClientStudy.UnitTest
{
public void ConfigureServices(IServiceCollection services)
{
- services.AddLogging(lb => lb.AddXunitOutput());
+ services.AddLogging(lb => lb.AddXunitOutput());
+ services.AddSerilog((services, loggerConfiguration) =>
+ {
+ loggerConfiguration
+ .WriteTo.File("log.txt", outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext}: {Message:lj}{NewLine}{Exception}")
+ .WriteTo.Console();
+ });
}
public void Configure(IApplicationBuilder app)
diff --git a/HttpClientStudy.WebClient/Controllers/CallApiController.cs b/HttpClientStudy.WebClient/Controllers/CallApiController.cs
index 79bb06e..615da95 100644
--- a/HttpClientStudy.WebClient/Controllers/CallApiController.cs
+++ b/HttpClientStudy.WebClient/Controllers/CallApiController.cs
@@ -18,5 +18,11 @@ namespace HttpClientStudy.WebClient.Controllers
{
return Ok("ping");
}
+
+ [HttpGet]
+ public IActionResult Exception()
+ {
+ throw new Exception("异常测试");
+ }
}
}
diff --git a/HttpClientStudy.WebClient/Program.cs b/HttpClientStudy.WebClient/Program.cs
index f791495..cc81b07 100644
--- a/HttpClientStudy.WebClient/Program.cs
+++ b/HttpClientStudy.WebClient/Program.cs
@@ -2,6 +2,9 @@ using System.Diagnostics;
using HttpClientStudy.Core.Utils;
+//WebApi
+StartupUtility.StartWebApiProject();
+
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
@@ -24,36 +27,28 @@ app.UseAuthorization();
app.MapControllers();
-Process currentProcess = Process.GetCurrentProcess();
-currentProcess.EnableRaisingEvents = true;
-currentProcess.Exited += (s, r) =>
-{
- Console.WriteLine("000000000000000000000000000000000000");
-};
-
+#region ˳ʱرWebAPI
+/*
+ * 1˳ִлƣ̫ɿֻ˳ʱִС
+ * 2˳ ctl+c
+ * 3˳ ڴй©رս̣رǵWebAPIʱʱرʱ˳쳣˳
+ */
// ȡ IHostApplicationLifetime ʵ
var applicationLifetime = app.Services.GetRequiredService();
-// עӦóر¼
-applicationLifetime.ApplicationStopping.Register(() =>
+// עӦóֹͣ¼رWebApi
+applicationLifetime.ApplicationStopping.Register(() =>
{
- //رWebApi
+ //ע⣺ Visual Studio 2022 ԤУִʱ쳣ʽӦԤBug
StartupUtility.ExitWebApiProject();
});
-applicationLifetime.ApplicationStopped.Register(() => {
- Console.WriteLine("xxxxxxxxxxxxxxxxxxxx");
-});
-
-// ע AppDomain δ쳣¼
-AppDomain.CurrentDomain.UnhandledException += (s,e)=>
+applicationLifetime.ApplicationStopped.Register(() =>
{
- Console.WriteLine("˳");
-};
-
+ Console.WriteLine("ֹͣ");
+});
-//ȷWebApi
-StartupUtility.StartWebApiProject();
+#endregion
app.Run();
diff --git a/HttpClientStudy.sln b/HttpClientStudy.sln
index 5398fd0..8097e05 100644
--- a/HttpClientStudy.sln
+++ b/HttpClientStudy.sln
@@ -15,12 +15,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HttpClientStudy.Service", "
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{56D9132E-6D9B-4D4B-B82C-D8F74AA4373A}"
ProjectSection(SolutionItems) = preProject
+ Docs\1.1.概述.ipynb = Docs\1.1.概述.ipynb
+ Docs\1.2.使用原则.ipynb = Docs\1.2.使用原则.ipynb
Docs\说明.md = Docs\说明.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HttpClientStudy.Config", "HttpClientStudy.Config\HttpClientStudy.Config.csproj", "{78FCC8F1-C196-4D4F-81A0-D0A1E0843AAE}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HttpClientStudy.WebClient", "HttpClientStudy.WebClient\HttpClientStudy.WebClient.csproj", "{40EFD636-C7A1-4AB1-A364-E044FBF9CF50}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HttpClientStudy.WebClient", "HttpClientStudy.WebClient\HttpClientStudy.WebClient.csproj", "{40EFD636-C7A1-4AB1-A364-E044FBF9CF50}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution