diff --git a/XUnitTest/ClientBaseTests.cs b/XUnitTest/Clients/ClientBaseTests.cs
similarity index 98%
rename from XUnitTest/ClientBaseTests.cs
rename to XUnitTest/Clients/ClientBaseTests.cs
index e5b9ada..0a7b15f 100644
--- a/XUnitTest/ClientBaseTests.cs
+++ b/XUnitTest/Clients/ClientBaseTests.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.ComponentModel;
using NewLife.Log;
using NewLife.Remoting;
@@ -6,7 +6,7 @@ using NewLife.Remoting.Clients;
using NewLife.Remoting.Models;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Clients;
/// <summary>ClientBase单元测试</summary>
public class ClientBaseTests
diff --git a/XUnitTest/ClusterTests.cs b/XUnitTest/Clients/ClusterTests.cs
similarity index 98%
rename from XUnitTest/ClusterTests.cs
rename to XUnitTest/Clients/ClusterTests.cs
index ad447b5..4fed95c 100644
--- a/XUnitTest/ClusterTests.cs
+++ b/XUnitTest/Clients/ClusterTests.cs
@@ -1,9 +1,9 @@
-using System;
+using System;
using System.ComponentModel;
using NewLife.Remoting;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Clients;
public class ClusterTests
{
diff --git a/XUnitTest/CommandClientTests.cs b/XUnitTest/Clients/CommandClientTests.cs
similarity index 99%
rename from XUnitTest/CommandClientTests.cs
rename to XUnitTest/Clients/CommandClientTests.cs
index 32bf8fc..f0f76b3 100644
--- a/XUnitTest/CommandClientTests.cs
+++ b/XUnitTest/Clients/CommandClientTests.cs
@@ -7,7 +7,7 @@ using NewLife.Remoting.Clients;
using NewLife.Remoting.Models;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Clients;
/// <summary>命令客户端测试</summary>
public class CommandClientTests
diff --git a/XUnitTest/ServerTimeProviderTests.cs b/XUnitTest/Clients/ServerTimeProviderTests.cs
similarity index 96%
rename from XUnitTest/ServerTimeProviderTests.cs
rename to XUnitTest/Clients/ServerTimeProviderTests.cs
index b83b0ba..1b4a43d 100644
--- a/XUnitTest/ServerTimeProviderTests.cs
+++ b/XUnitTest/Clients/ServerTimeProviderTests.cs
@@ -1,10 +1,10 @@
-using System;
+using System;
using System.ComponentModel;
using NewLife.Remoting;
using NewLife.Remoting.Clients;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Clients;
/// <summary>ServerTimeProvider单元测试</summary>
public class ServerTimeProviderTests
diff --git a/XUnitTest/UpgradeTests.cs b/XUnitTest/Clients/UpgradeTests.cs
similarity index 98%
rename from XUnitTest/UpgradeTests.cs
rename to XUnitTest/Clients/UpgradeTests.cs
index cd38881..2de0aec 100644
--- a/XUnitTest/UpgradeTests.cs
+++ b/XUnitTest/Clients/UpgradeTests.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.ComponentModel;
using System.Threading.Tasks;
using NewLife.Remoting;
@@ -6,7 +6,7 @@ using NewLife.Remoting.Clients;
using NewLife.Remoting.Models;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Clients;
public class UpgradeTests
{
diff --git a/XUnitTest/ControllerContextTests.cs b/XUnitTest/Controllers/ControllerContextTests.cs
similarity index 98%
rename from XUnitTest/ControllerContextTests.cs
rename to XUnitTest/Controllers/ControllerContextTests.cs
index b18844c..e92085b 100644
--- a/XUnitTest/ControllerContextTests.cs
+++ b/XUnitTest/Controllers/ControllerContextTests.cs
@@ -1,10 +1,10 @@
-using System;
+using System;
using System.Collections.Generic;
using System.ComponentModel;
using NewLife.Remoting;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Controllers;
public class ControllerContextTests
{
diff --git a/XUnitTest/ActionFilterTests.cs b/XUnitTest/Filters/ActionFilterTests.cs
similarity index 97%
rename from XUnitTest/ActionFilterTests.cs
rename to XUnitTest/Filters/ActionFilterTests.cs
index 2c4d210..7b7800b 100644
--- a/XUnitTest/ActionFilterTests.cs
+++ b/XUnitTest/Filters/ActionFilterTests.cs
@@ -1,9 +1,9 @@
-using System;
+using System;
using System.ComponentModel;
using NewLife.Remoting;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Filters;
/// <summary>IActionFilter单元测试</summary>
public class ActionFilterTests
diff --git a/XUnitTest/ApiFilterAttributeTests.cs b/XUnitTest/Filters/ApiFilterAttributeTests.cs
similarity index 97%
rename from XUnitTest/ApiFilterAttributeTests.cs
rename to XUnitTest/Filters/ApiFilterAttributeTests.cs
index 327d04f..a02b05d 100644
--- a/XUnitTest/ApiFilterAttributeTests.cs
+++ b/XUnitTest/Filters/ApiFilterAttributeTests.cs
@@ -1,11 +1,11 @@
-using System;
+using System;
using System.ComponentModel;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Primitives;
using NewLife.Remoting.Extensions;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Filters;
/// <summary>ApiFilterAttribute单元测试</summary>
public class ApiFilterAttributeTests
diff --git a/XUnitTest/HttpCodecTests.cs b/XUnitTest/Http/HttpCodecTests.cs
similarity index 94%
rename from XUnitTest/HttpCodecTests.cs
rename to XUnitTest/Http/HttpCodecTests.cs
index 1555532..9266ade 100644
--- a/XUnitTest/HttpCodecTests.cs
+++ b/XUnitTest/Http/HttpCodecTests.cs
@@ -1,10 +1,10 @@
-using System;
+using System;
using System.ComponentModel;
using NewLife.Data;
using NewLife.Remoting.Http;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Http;
public class HttpCodecTests
{
diff --git a/XUnitTest/HttpEncoderTests.cs b/XUnitTest/Http/HttpEncoderTests.cs
similarity index 98%
rename from XUnitTest/HttpEncoderTests.cs
rename to XUnitTest/Http/HttpEncoderTests.cs
index 12c60cd..09f7a73 100644
--- a/XUnitTest/HttpEncoderTests.cs
+++ b/XUnitTest/Http/HttpEncoderTests.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.ComponentModel;
using NewLife;
@@ -6,7 +6,7 @@ using NewLife.Data;
using NewLife.Remoting.Http;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Http;
public class HttpEncoderTests
{
diff --git a/XUnitTest/HttpMessageTests.cs b/XUnitTest/Http/HttpMessageTests.cs
similarity index 98%
rename from XUnitTest/HttpMessageTests.cs
rename to XUnitTest/Http/HttpMessageTests.cs
index cf5c9d5..c08a235 100644
--- a/XUnitTest/HttpMessageTests.cs
+++ b/XUnitTest/Http/HttpMessageTests.cs
@@ -5,7 +5,7 @@ using NewLife.Data;
using NewLife.Remoting.Http;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Http;
public class HttpMessageTests
{
diff --git a/XUnitTest/WebSocketCodecTests.cs b/XUnitTest/Http/WebSocketCodecTests.cs
similarity index 95%
rename from XUnitTest/WebSocketCodecTests.cs
rename to XUnitTest/Http/WebSocketCodecTests.cs
index 5bf4188..2f26d01 100644
--- a/XUnitTest/WebSocketCodecTests.cs
+++ b/XUnitTest/Http/WebSocketCodecTests.cs
@@ -1,9 +1,9 @@
-using System;
+using System;
using System.ComponentModel;
using NewLife.Remoting.Http;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Http;
public class WebSocketCodecTests
{
diff --git a/XUnitTest/ActionFilterIntegrationTests.cs b/XUnitTest/Integration/ActionFilterIntegrationTests.cs
similarity index 98%
rename from XUnitTest/ActionFilterIntegrationTests.cs
rename to XUnitTest/Integration/ActionFilterIntegrationTests.cs
index cfb2d44..75b2022 100644
--- a/XUnitTest/ActionFilterIntegrationTests.cs
+++ b/XUnitTest/Integration/ActionFilterIntegrationTests.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
@@ -7,7 +7,7 @@ using NewLife.Log;
using NewLife.Remoting;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>ActionFilter管线集成测试</summary>
/// <remarks>
diff --git a/XUnitTest/ApiAttributeRoutingIntegrationTests.cs b/XUnitTest/Integration/ApiAttributeRoutingIntegrationTests.cs
similarity index 99%
rename from XUnitTest/ApiAttributeRoutingIntegrationTests.cs
rename to XUnitTest/Integration/ApiAttributeRoutingIntegrationTests.cs
index 1082f20..4c361e2 100644
--- a/XUnitTest/ApiAttributeRoutingIntegrationTests.cs
+++ b/XUnitTest/Integration/ApiAttributeRoutingIntegrationTests.cs
@@ -6,7 +6,7 @@ using NewLife.Log;
using NewLife.Remoting;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>ApiAttribute路由与访问控制集成测试</summary>
/// <remarks>
diff --git a/XUnitTest/ApiClientTests.cs b/XUnitTest/Integration/ApiClientTests.cs
similarity index 99%
rename from XUnitTest/ApiClientTests.cs
rename to XUnitTest/Integration/ApiClientTests.cs
index 1ba2824..47f449b 100644
--- a/XUnitTest/ApiClientTests.cs
+++ b/XUnitTest/Integration/ApiClientTests.cs
@@ -12,7 +12,7 @@ using NewLife.Security;
using NewLife.Serialization;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>ApiClient单元测试</summary>
public class ApiClientTests : DisposeBase
diff --git a/XUnitTest/ApiDownTests.cs b/XUnitTest/Integration/ApiDownTests.cs
similarity index 98%
rename from XUnitTest/ApiDownTests.cs
rename to XUnitTest/Integration/ApiDownTests.cs
index d54f0f8..eee2e84 100644
--- a/XUnitTest/ApiDownTests.cs
+++ b/XUnitTest/Integration/ApiDownTests.cs
@@ -9,7 +9,7 @@ using NewLife.Security;
using NewLife.Serialization;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>RPC下行指令测试</summary>
public class ApiDownTests : DisposeBase
diff --git a/XUnitTest/ApiHttpClientTests.cs b/XUnitTest/Integration/ApiHttpClientTests.cs
similarity index 99%
rename from XUnitTest/ApiHttpClientTests.cs
rename to XUnitTest/Integration/ApiHttpClientTests.cs
index 28dc867..2bbaa7d 100644
--- a/XUnitTest/ApiHttpClientTests.cs
+++ b/XUnitTest/Integration/ApiHttpClientTests.cs
@@ -8,7 +8,7 @@ using NewLife.Remoting;
using NewLife.Security;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
public class ApiHttpClientTests : DisposeBase
{
diff --git a/XUnitTest/ApiServerClientIntegrationTests.cs b/XUnitTest/Integration/ApiServerClientIntegrationTests.cs
similarity index 99%
rename from XUnitTest/ApiServerClientIntegrationTests.cs
rename to XUnitTest/Integration/ApiServerClientIntegrationTests.cs
index 34ca72e..58c9e47 100644
--- a/XUnitTest/ApiServerClientIntegrationTests.cs
+++ b/XUnitTest/Integration/ApiServerClientIntegrationTests.cs
@@ -11,7 +11,7 @@ using NewLife.Remoting;
using NewLife.Security;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>ApiServer与ApiClient集成测试</summary>
public class ApiServerClientIntegrationTests : DisposeBase
diff --git a/XUnitTest/ApiServerTests.cs b/XUnitTest/Integration/ApiServerTests.cs
similarity index 99%
rename from XUnitTest/ApiServerTests.cs
rename to XUnitTest/Integration/ApiServerTests.cs
index 1a1f558..3890d4d 100644
--- a/XUnitTest/ApiServerTests.cs
+++ b/XUnitTest/Integration/ApiServerTests.cs
@@ -11,7 +11,7 @@ using NewLife.Model;
using NewLife.Remoting;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>ApiServer单元测试</summary>
public class ApiServerTests
diff --git a/XUnitTest/ApiTest.cs b/XUnitTest/Integration/ApiTest.cs
similarity index 99%
rename from XUnitTest/ApiTest.cs
rename to XUnitTest/Integration/ApiTest.cs
index 6e2aef7..49da170 100644
--- a/XUnitTest/ApiTest.cs
+++ b/XUnitTest/Integration/ApiTest.cs
@@ -11,7 +11,7 @@ using NewLife.Net;
using NewLife.Remoting;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
[TestCaseOrderer("NewLife.UnitTest.DefaultOrderer", "NewLife.UnitTest")]
public class ApiTest : DisposeBase
diff --git a/XUnitTest/BidirectionalIntegrationTests.cs b/XUnitTest/Integration/BidirectionalIntegrationTests.cs
similarity index 99%
rename from XUnitTest/BidirectionalIntegrationTests.cs
rename to XUnitTest/Integration/BidirectionalIntegrationTests.cs
index 773df29..e017ac7 100644
--- a/XUnitTest/BidirectionalIntegrationTests.cs
+++ b/XUnitTest/Integration/BidirectionalIntegrationTests.cs
@@ -10,7 +10,7 @@ using NewLife.Messaging;
using NewLife.Remoting;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>服务端主动下发与双向通信集成测试</summary>
/// <remarks>
diff --git a/XUnitTest/BoundaryAndStressIntegrationTests.cs b/XUnitTest/Integration/BoundaryAndStressIntegrationTests.cs
similarity index 99%
rename from XUnitTest/BoundaryAndStressIntegrationTests.cs
rename to XUnitTest/Integration/BoundaryAndStressIntegrationTests.cs
index 764f9bd..f5bbf97 100644
--- a/XUnitTest/BoundaryAndStressIntegrationTests.cs
+++ b/XUnitTest/Integration/BoundaryAndStressIntegrationTests.cs
@@ -10,7 +10,7 @@ using NewLife.Remoting;
using NewLife.Security;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>边界条件与压力集成测试</summary>
/// <remarks>
diff --git a/XUnitTest/ClusterIntegrationTests.cs b/XUnitTest/Integration/ClusterIntegrationTests.cs
similarity index 98%
rename from XUnitTest/ClusterIntegrationTests.cs
rename to XUnitTest/Integration/ClusterIntegrationTests.cs
index 96091a0..1a17d70 100644
--- a/XUnitTest/ClusterIntegrationTests.cs
+++ b/XUnitTest/Integration/ClusterIntegrationTests.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
@@ -8,7 +8,7 @@ using NewLife.Net;
using NewLife.Remoting;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>连接池/集群集成测试</summary>
/// <remarks>
diff --git a/XUnitTest/DualProtocolIntegrationTests.cs b/XUnitTest/Integration/DualProtocolIntegrationTests.cs
similarity index 99%
rename from XUnitTest/DualProtocolIntegrationTests.cs
rename to XUnitTest/Integration/DualProtocolIntegrationTests.cs
index 431f0c3..4ecd708 100644
--- a/XUnitTest/DualProtocolIntegrationTests.cs
+++ b/XUnitTest/Integration/DualProtocolIntegrationTests.cs
@@ -10,7 +10,7 @@ using NewLife.Remoting;
using NewLife.Security;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>TCP与HTTP双协议混合集成测试</summary>
/// <remarks>
diff --git a/XUnitTest/HttpIntegrationTests.cs b/XUnitTest/Integration/HttpIntegrationTests.cs
similarity index 98%
rename from XUnitTest/HttpIntegrationTests.cs
rename to XUnitTest/Integration/HttpIntegrationTests.cs
index 8ef8852..18ce3f6 100644
--- a/XUnitTest/HttpIntegrationTests.cs
+++ b/XUnitTest/Integration/HttpIntegrationTests.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
@@ -11,7 +11,7 @@ using NewLife.Remoting;
using NewLife.Security;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>HTTP模式集成测试</summary>
/// <remarks>
diff --git a/XUnitTest/MultiControllerRoutingTests.cs b/XUnitTest/Integration/MultiControllerRoutingTests.cs
similarity index 94%
rename from XUnitTest/MultiControllerRoutingTests.cs
rename to XUnitTest/Integration/MultiControllerRoutingTests.cs
index ff2071c..baa2cf0 100644
--- a/XUnitTest/MultiControllerRoutingTests.cs
+++ b/XUnitTest/Integration/MultiControllerRoutingTests.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Linq;
using System.Threading.Tasks;
using NewLife;
@@ -7,7 +7,7 @@ using NewLife.Log;
using NewLife.Remoting;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>多控制器路由与高级调用集成测试</summary>
/// <remarks>
diff --git a/XUnitTest/RetryPolicyIntegrationTests.cs b/XUnitTest/Integration/RetryPolicyIntegrationTests.cs
similarity index 98%
rename from XUnitTest/RetryPolicyIntegrationTests.cs
rename to XUnitTest/Integration/RetryPolicyIntegrationTests.cs
index fa8c735..6804275 100644
--- a/XUnitTest/RetryPolicyIntegrationTests.cs
+++ b/XUnitTest/Integration/RetryPolicyIntegrationTests.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Threading;
using System.Threading.Tasks;
using NewLife;
@@ -6,7 +6,7 @@ using NewLife.Log;
using NewLife.Remoting;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>重试策略集成测试</summary>
/// <remarks>
diff --git a/XUnitTest/SessionLifecycleIntegrationTests.cs b/XUnitTest/Integration/SessionLifecycleIntegrationTests.cs
similarity index 99%
rename from XUnitTest/SessionLifecycleIntegrationTests.cs
rename to XUnitTest/Integration/SessionLifecycleIntegrationTests.cs
index 8e089c2..cc46ea5 100644
--- a/XUnitTest/SessionLifecycleIntegrationTests.cs
+++ b/XUnitTest/Integration/SessionLifecycleIntegrationTests.cs
@@ -8,7 +8,7 @@ using NewLife.Log;
using NewLife.Remoting;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>Session状态与生命周期集成测试</summary>
/// <remarks>
diff --git a/XUnitTest/TimeoutOneWayIntegrationTests.cs b/XUnitTest/Integration/TimeoutOneWayIntegrationTests.cs
similarity index 98%
rename from XUnitTest/TimeoutOneWayIntegrationTests.cs
rename to XUnitTest/Integration/TimeoutOneWayIntegrationTests.cs
index accd088..2fb40c6 100644
--- a/XUnitTest/TimeoutOneWayIntegrationTests.cs
+++ b/XUnitTest/Integration/TimeoutOneWayIntegrationTests.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
@@ -10,7 +10,7 @@ using NewLife.Messaging;
using NewLife.Remoting;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>超时、OneWay 和非复用模式集成测试</summary>
/// <remarks>
diff --git a/XUnitTest/TokenLoginIntegrationTests.cs b/XUnitTest/Integration/TokenLoginIntegrationTests.cs
similarity index 98%
rename from XUnitTest/TokenLoginIntegrationTests.cs
rename to XUnitTest/Integration/TokenLoginIntegrationTests.cs
index f4629c3..fb03cb4 100644
--- a/XUnitTest/TokenLoginIntegrationTests.cs
+++ b/XUnitTest/Integration/TokenLoginIntegrationTests.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
@@ -9,7 +9,7 @@ using NewLife.Net;
using NewLife.Remoting;
using Xunit;
-namespace XUnitTest.Remoting;
+namespace XUnitTest.Integration;
/// <summary>Token传递与登录流程集成测试</summary>
/// <remarks>
diff --git a/XUnitTest/ModelTests.cs b/XUnitTest/Models/ModelTests.cs
similarity index 98%
rename from XUnitTest/ModelTests.cs
rename to XUnitTest/Models/ModelTests.cs
index 721708b..d21ac3b 100644
--- a/XUnitTest/ModelTests.cs
+++ b/XUnitTest/Models/ModelTests.cs
@@ -1,11 +1,11 @@
-using System;
+using System;
using System.Collections.Generic;
using System.ComponentModel;
using NewLife.Remoting;
using NewLife.Remoting.Models;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Models;
public class ModelTests
{
diff --git a/XUnitTest/MoreModelTests.cs b/XUnitTest/Models/MoreModelTests.cs
similarity index 98%
rename from XUnitTest/MoreModelTests.cs
rename to XUnitTest/Models/MoreModelTests.cs
index a427235..8fba391 100644
--- a/XUnitTest/MoreModelTests.cs
+++ b/XUnitTest/Models/MoreModelTests.cs
@@ -1,9 +1,9 @@
-using System;
+using System;
using System.ComponentModel;
using NewLife.Remoting.Models;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Models;
/// <summary>更多模型类单元测试</summary>
public class MoreModelTests
diff --git a/XUnitTest/TokenInModelTests.cs b/XUnitTest/Models/TokenInModelTests.cs
similarity index 94%
rename from XUnitTest/TokenInModelTests.cs
rename to XUnitTest/Models/TokenInModelTests.cs
index 5d21e02..cc0ddcc 100644
--- a/XUnitTest/TokenInModelTests.cs
+++ b/XUnitTest/Models/TokenInModelTests.cs
@@ -1,9 +1,9 @@
-using System;
+using System;
using System.ComponentModel;
using NewLife.Remoting.Extensions.Models;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Models;
public class TokenInModelTests
{
diff --git a/XUnitTest/CommandSessionTests.cs b/XUnitTest/Services/CommandSessionTests.cs
similarity index 97%
rename from XUnitTest/CommandSessionTests.cs
rename to XUnitTest/Services/CommandSessionTests.cs
index 1a0d96c..b29af32 100644
--- a/XUnitTest/CommandSessionTests.cs
+++ b/XUnitTest/Services/CommandSessionTests.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.ComponentModel;
using System.Threading.Tasks;
using NewLife.Log;
@@ -7,7 +7,7 @@ using NewLife.Remoting.Models;
using NewLife.Remoting.Services;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Services;
/// <summary>CommandSession单元测试</summary>
public class CommandSessionTests
diff --git a/XUnitTest/DeviceServiceTests.cs b/XUnitTest/Services/DeviceServiceTests.cs
similarity index 99%
rename from XUnitTest/DeviceServiceTests.cs
rename to XUnitTest/Services/DeviceServiceTests.cs
index 5725e4d..746134a 100644
--- a/XUnitTest/DeviceServiceTests.cs
+++ b/XUnitTest/Services/DeviceServiceTests.cs
@@ -4,7 +4,7 @@ using NewLife.Remoting.Models;
using NewLife.Remoting.Services;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Services;
/// <summary>设备服务测试</summary>
[TestCaseOrderer("NewLife.UnitTest.DefaultOrderer", "NewLife.UnitTest")]
diff --git a/XUnitTest/SessionManagerTests.cs b/XUnitTest/Services/SessionManagerTests.cs
similarity index 99%
rename from XUnitTest/SessionManagerTests.cs
rename to XUnitTest/Services/SessionManagerTests.cs
index 20b2bc1..c4f97fc 100644
--- a/XUnitTest/SessionManagerTests.cs
+++ b/XUnitTest/Services/SessionManagerTests.cs
@@ -10,7 +10,7 @@ using NewLife.Web;
using Xunit;
using Moq;
-namespace XUnitTest;
+namespace XUnitTest.Services;
/// <summary>会话管理器测试</summary>
[TestCaseOrderer("NewLife.UnitTest.DefaultOrderer", "NewLife.UnitTest")]
diff --git a/XUnitTest/TokenServiceTests.cs b/XUnitTest/Services/TokenServiceTests.cs
similarity index 98%
rename from XUnitTest/TokenServiceTests.cs
rename to XUnitTest/Services/TokenServiceTests.cs
index 52aee25..7b82494 100644
--- a/XUnitTest/TokenServiceTests.cs
+++ b/XUnitTest/Services/TokenServiceTests.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.ComponentModel;
using NewLife.Remoting;
using NewLife.Remoting.Extensions.Services;
@@ -7,7 +7,7 @@ using NewLife.Remoting.Services;
using NewLife.Web;
using Xunit;
-namespace XUnitTest;
+namespace XUnitTest.Services;
public class TokenServiceTests
{