diff --git a/Yi.Abp.Net8/test/Yi.Abp.Test/Demo/ThreadDb_Test.cs b/Yi.Abp.Net8/test/Yi.Abp.Test/Demo/ThreadDb_Test.cs
deleted file mode 100644
index 7a519d88..00000000
--- a/Yi.Abp.Net8/test/Yi.Abp.Test/Demo/ThreadDb_Test.cs
+++ /dev/null
@@ -1,110 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Volo.Abp.Uow;
-using Xunit;
-using Yi.Framework.Rbac.Application.Contracts.IServices;
-using Yi.Framework.Rbac.Domain.Entities;
-using Yi.Framework.Rbac.Domain.Shared.Consts;
-using Yi.Framework.SqlSugarCore.Abstractions;
-
-namespace Yi.Abp.Test.Demo
-{
- public class ThreadDb_Test : YiAbpTestBase
- {
- ///
- /// 并发
- ///
- ///
- [Fact]
- public async Task Repository_Test()
- {
- try
- {
- var rep = GetRequiredService>();
- List tasks = new List();
- for (int i = 0; i < 10; i++)
- {
- tasks.Add(Task.Run(async () =>
- {
- await rep.GetListAsync();
- }));
- }
- await Task.WhenAll(tasks);
- await Console.Out.WriteLineAsync("成功");
- }
- catch
- (Exception ex)
- {
- Console.WriteLine(ex.ToString());
- }
- }
-
- ///
- /// 工作单元
- ///
- ///
- [Fact]
- public async Task Uow_In_Test()
- {
- try
- {
- var rep = GetRequiredService>();
- List tasks = new List();
- for (int i = 0; i < 10; i++)
- {
- tasks.Add(Task.Run(async () =>
- {
- using (var uow = GetRequiredService().Begin(true, true))
- {
- await rep.GetListAsync();
- await uow.CompleteAsync();
- }
- }));
- }
- await Task.WhenAll(tasks);
- await Console.Out.WriteLineAsync("成功");
- }
- catch
- (Exception ex)
- {
- Console.WriteLine(ex.ToString());
- }
- }
-
-
- ///
- /// 工作单元
- ///
- ///
- [Fact]
- public async Task Uow_Out_Test()
- {
- try
- {
- var rep = GetRequiredService>();
- List tasks = new List();
- using (var uow = GetRequiredService().Begin(true, true))
- {
- for (int i = 0; i < 10; i++)
- {
- tasks.Add(Task.Run(async () =>
- {
- await rep.GetListAsync();
- await uow.CompleteAsync();
- }));
- }
- }
- await Task.WhenAll(tasks);
- await Console.Out.WriteLineAsync("成功");
- }
- catch
- (Exception ex)
- {
- Console.WriteLine(ex.ToString());
- }
- }
- }
-}
diff --git a/Yi.Abp.Net8/test/Yi.Abp.Test/Demo/User_Test.cs b/Yi.Abp.Net8/test/Yi.Abp.Test/Demo/User_Test.cs
deleted file mode 100644
index 2cb272b7..00000000
--- a/Yi.Abp.Net8/test/Yi.Abp.Test/Demo/User_Test.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using Shouldly;
-using Xunit;
-using Yi.Framework.Rbac.Application.Contracts.IServices;
-using Yi.Framework.Rbac.Domain.Shared.Consts;
-
-namespace Yi.Abp.Test.Demo
-{
- public class User_Test : YiAbpTestBase
- {
- [Fact]
- public async Task Get_User_List_Test()
- {
- var service = GetRequiredService();
- var user = await service.GetListAsync(new Framework.Rbac.Application.Contracts.Dtos.User.UserGetListInputVo { UserName = UserConst.Admin });
- user.ShouldNotBeNull();
- }
- }
-}
diff --git a/Yi.Abp.Net8/test/Yi.Abp.Test/YiAbpTestModule.cs b/Yi.Abp.Net8/test/Yi.Abp.Test/YiAbpTestModule.cs
index ec42fc11..c1ee11a1 100644
--- a/Yi.Abp.Net8/test/Yi.Abp.Test/YiAbpTestModule.cs
+++ b/Yi.Abp.Net8/test/Yi.Abp.Test/YiAbpTestModule.cs
@@ -20,7 +20,6 @@ namespace Yi.Abp.Test
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
- Configure(options=>options.IsEnabled=false);
}
}
}
diff --git a/Yi.Abp.Net8/test/Yi.Abp.Test/YiAbpTestWebBase.cs b/Yi.Abp.Net8/test/Yi.Abp.Test/YiAbpTestWebBase.cs
index 0b9561b0..7de0bb40 100644
--- a/Yi.Abp.Net8/test/Yi.Abp.Test/YiAbpTestWebBase.cs
+++ b/Yi.Abp.Net8/test/Yi.Abp.Test/YiAbpTestWebBase.cs
@@ -1,44 +1,38 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Hosting;
-using NSubstitute.Extensions;
-namespace Yi.Abp.Test
+namespace Yi.Abp.Test;
+
+public class YiAbpTestWebBase:YiAbpTestBase
{
- public class YiAbpTestWebBase:YiAbpTestBase
+ public HttpContext HttpContext { get; private set; }
+ public YiAbpTestWebBase():base()
{
- public HttpContext HttpContext { get; private set; }
- public YiAbpTestWebBase():base()
- {
- HttpContext httpContext = DefaultHttpContextAccessor.CurrentHttpContext;
- this.ConfigureHttpContext(httpContext);
- HttpContext = httpContext;
- IApplicationBuilder app = new ApplicationBuilder(this.ServiceProvider);
- RequestDelegate httpDelegate = app.Build();
- httpDelegate.Invoke(httpContext);
- }
+ HttpContext httpContext = DefaultHttpContextAccessor.CurrentHttpContext;
+ this.ConfigureHttpContext(httpContext);
+ HttpContext = httpContext;
+ IApplicationBuilder app = new ApplicationBuilder(this.ServiceProvider);
+ RequestDelegate httpDelegate = app.Build();
+ httpDelegate.Invoke(httpContext);
+ }
- public override void ConfigureServices(HostBuilderContext host, IServiceCollection service)
- {
- service.Replace(new ServiceDescriptor(typeof(IHttpContextAccessor), typeof(DefaultHttpContextAccessor), ServiceLifetime.Singleton));
- base.ConfigureServices(host, service);
- }
+ public override void ConfigureServices(HostBuilderContext host, IServiceCollection service)
+ {
+ service.Replace(new ServiceDescriptor(typeof(IHttpContextAccessor), typeof(DefaultHttpContextAccessor), ServiceLifetime.Singleton));
+ base.ConfigureServices(host, service);
+ }
- protected virtual void ConfigureHttpContext(HttpContext httpContext)
- {
- httpContext.Request.Path= "/test";
- }
+ protected virtual void ConfigureHttpContext(HttpContext httpContext)
+ {
+ httpContext.Request.Path= "/test";
}
}
+
internal class DefaultHttpContextAccessor : IHttpContextAccessor
{
internal static HttpContext? CurrentHttpContext { get; set; } = new DefaultHttpContext();
public HttpContext? HttpContext { get => CurrentHttpContext; set => throw new NotImplementedException(); }
-}
+}
\ No newline at end of file
diff --git a/Yi.Abp.Net8/test/Yi.Abp.Test/Demo/HttpUser_Test.cs b/Yi.Abp.Net8/test/Yi.Abp.Test/example/HttpUser_Test.cs
similarity index 63%
rename from Yi.Abp.Net8/test/Yi.Abp.Test/Demo/HttpUser_Test.cs
rename to Yi.Abp.Net8/test/Yi.Abp.Test/example/HttpUser_Test.cs
index 193d5dd8..23b630b3 100644
--- a/Yi.Abp.Net8/test/Yi.Abp.Test/Demo/HttpUser_Test.cs
+++ b/Yi.Abp.Net8/test/Yi.Abp.Test/example/HttpUser_Test.cs
@@ -1,13 +1,8 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Http;
using Shouldly;
using Xunit;
-namespace Yi.Abp.Test.Demo
+namespace Yi.Abp.Test.example
{
public class HttpUser_Test : YiAbpTestWebBase
{
diff --git a/Yi.Abp.Net8/test/Yi.Abp.Test/example/ThreadDb_Test.cs b/Yi.Abp.Net8/test/Yi.Abp.Test/example/ThreadDb_Test.cs
new file mode 100644
index 00000000..aaec3705
--- /dev/null
+++ b/Yi.Abp.Net8/test/Yi.Abp.Test/example/ThreadDb_Test.cs
@@ -0,0 +1,52 @@
+using Volo.Abp.Uow;
+using Xunit;
+using Yi.Framework.Rbac.Domain.Entities;
+using Yi.Framework.SqlSugarCore.Abstractions;
+
+namespace Yi.Abp.Test.example
+{
+ public class ThreadDb_Test : YiAbpTestBase
+ {
+ ///
+ /// 工作单元
+ ///
+ ///
+ [Fact]
+ public async Task Uow_In_Test()
+ {
+ try
+ {
+ var uowManager = GetRequiredService();
+ var tasks = new List();
+ // 创建10个任务但不立即执行
+ for (int i = 0; i < 10; i++)
+ {
+ var task = new Task(async () =>
+ {
+ using (var uow = uowManager.Begin())
+ {
+ var rep = GetRequiredService>();
+ var result = await rep.GetListAsync();
+ await uow.CompleteAsync();
+ }
+ });
+ tasks.Add(task);
+ }
+
+ // 同时启动所有任务
+ foreach (var task in tasks)
+ {
+ task.Start();
+ }
+
+ await Task.WhenAll(tasks);
+ // 如果执行到这里没有抛出异常,说明并发测试成功
+ Assert.True(true, "并发工作单元测试成功");
+ }
+ catch (Exception ex)
+ {
+ Assert.True(false, $"并发工作单元测试失败: {ex.Message}");
+ }
+ }
+ }
+}
diff --git a/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/System/Account_Test.cs b/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/System/AccountFrameworkRbacTest.cs
similarity index 97%
rename from Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/System/Account_Test.cs
rename to Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/System/AccountFrameworkRbacTest.cs
index 8703f5df..70f28788 100644
--- a/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/System/Account_Test.cs
+++ b/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/System/AccountFrameworkRbacTest.cs
@@ -18,12 +18,12 @@ using Yi.Framework.SqlSugarCore.Abstractions;
namespace Yi.Framework.Rbac.Test.System
{
- public class Account_Test : YiTestWebBase
+ public class AccountFrameworkRbacTest : YiFrameworkRbacTestWebBase
{
private IAccountService _accountService;
private ISqlSugarRepository _userRepository;
- public Account_Test()
+ public AccountFrameworkRbacTest()
{
_accountService = GetRequiredService();
_userRepository = GetRequiredService>();
diff --git a/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/System/User_Test.cs b/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/System/UserFrameworkRbacTest.cs
similarity index 96%
rename from Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/System/User_Test.cs
rename to Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/System/UserFrameworkRbacTest.cs
index aee0f30f..8c731307 100644
--- a/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/System/User_Test.cs
+++ b/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/System/UserFrameworkRbacTest.cs
@@ -13,11 +13,11 @@ using Yi.Framework.SqlSugarCore.Abstractions;
namespace Yi.Framework.Rbac.Test.System
{
- public class User_Test : YiTestBase
+ public class UserFrameworkRbacTest : YiFrameworkRbacTestBase
{
private IUserService _userService;
private ISqlSugarRepository _repository;
- public User_Test()
+ public UserFrameworkRbacTest()
{
_userService = ServiceProvider.GetRequiredService();
_repository = ServiceProvider.GetRequiredService>();
diff --git a/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiTestBase.cs b/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiFrameworkRbacTestBase.cs
similarity index 94%
rename from Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiTestBase.cs
rename to Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiFrameworkRbacTestBase.cs
index 22467b30..deff22e0 100644
--- a/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiTestBase.cs
+++ b/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiFrameworkRbacTestBase.cs
@@ -8,11 +8,11 @@ using Yi.Framework.Rbac.SqlSugarCore.Repositories;
namespace Yi.Framework.Rbac.Test
{
- public class YiTestBase : AbpTestBaseWithServiceProvider
+ public class YiFrameworkRbacTestBase : AbpTestBaseWithServiceProvider
{
public ILogger Logger { get; private set; }
protected IServiceScope TestServiceScope { get; }
- public YiTestBase()
+ public YiFrameworkRbacTestBase()
{
//在启动之前,清除sqlite全库,由于非常危险,建议使用sqlite
//Microsoft.Data.Sqlite.SqliteConnection.ClearAllPools();
diff --git a/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiFrameworkRbacTestModule.cs b/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiFrameworkRbacTestModule.cs
index 40353e03..0cf8b266 100644
--- a/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiFrameworkRbacTestModule.cs
+++ b/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiFrameworkRbacTestModule.cs
@@ -15,8 +15,7 @@ namespace Yi.Framework.Rbac.Test
typeof(YiFrameworkRbacApplicationModule),
typeof(YiFrameworkRbacSqlSugarCoreModule),
- typeof(AbpAutofacModule),
- typeof(AbpAuditingModule)
+ typeof(AbpAutofacModule)
)]
public class YiFrameworkRbacTestModule : AbpModule
{
diff --git a/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiTestWebBase.cs b/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiFrameworkRbacTestWebBase.cs
similarity index 92%
rename from Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiTestWebBase.cs
rename to Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiFrameworkRbacTestWebBase.cs
index 291f5495..3219fc35 100644
--- a/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiTestWebBase.cs
+++ b/Yi.Abp.Net8/test/Yi.Framework.Rbac.Test/YiFrameworkRbacTestWebBase.cs
@@ -12,10 +12,10 @@ using NSubstitute.Extensions;
namespace Yi.Framework.Rbac.Test
{
- public class YiTestWebBase : YiTestBase
+ public class YiFrameworkRbacTestWebBase : YiFrameworkRbacTestBase
{
public HttpContext HttpContext { get; private set; }
- public YiTestWebBase() : base()
+ public YiFrameworkRbacTestWebBase() : base()
{
HttpContext httpContext = DefaultHttpContextAccessor.CurrentHttpContext;
ConfigureHttpContext(httpContext);