diff --git a/Directory.Packages.props b/Directory.Packages.props
index df58dd5a3..acf529265 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -22,7 +22,7 @@
-
+
diff --git a/test/SuperSocket.Tests/AspNetIntegrationTest.cs b/test/SuperSocket.Tests/AspNetIntegrationTest.cs
index ca0fd7a9f..25280ce99 100644
--- a/test/SuperSocket.Tests/AspNetIntegrationTest.cs
+++ b/test/SuperSocket.Tests/AspNetIntegrationTest.cs
@@ -7,7 +7,6 @@
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Xunit;
-using Xunit.Abstractions;
using Microsoft.Extensions.Configuration;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
diff --git a/test/SuperSocket.Tests/AutofacTest.cs b/test/SuperSocket.Tests/AutofacTest.cs
index 0ee566950..d47e032d8 100644
--- a/test/SuperSocket.Tests/AutofacTest.cs
+++ b/test/SuperSocket.Tests/AutofacTest.cs
@@ -14,7 +14,6 @@
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Xunit;
-using Xunit.Abstractions;
using SuperSocket.Server;
using System.Threading;
using SuperSocket.Tests.Command;
diff --git a/test/SuperSocket.Tests/BeginEndMarkProtocolTest.cs b/test/SuperSocket.Tests/BeginEndMarkProtocolTest.cs
index 53cb5e96a..f0709e23a 100644
--- a/test/SuperSocket.Tests/BeginEndMarkProtocolTest.cs
+++ b/test/SuperSocket.Tests/BeginEndMarkProtocolTest.cs
@@ -12,7 +12,6 @@
using SuperSocket.Server.Abstractions.Host;
using SuperSocket.Server.Host;
using Xunit;
-using Xunit.Abstractions;
namespace SuperSocket.Tests
{
diff --git a/test/SuperSocket.Tests/ClientTest.cs b/test/SuperSocket.Tests/ClientTest.cs
index 38116096a..57dd423ad 100644
--- a/test/SuperSocket.Tests/ClientTest.cs
+++ b/test/SuperSocket.Tests/ClientTest.cs
@@ -5,7 +5,6 @@
using SuperSocket.Command;
using SuperSocket.ProtoBase;
using Xunit;
-using Xunit.Abstractions;
using SuperSocket.Client;
using SuperSocket.Server.Host;
using SuperSocket.Tests.Command;
diff --git a/test/SuperSocket.Tests/CommandTest.cs b/test/SuperSocket.Tests/CommandTest.cs
index 229b292ba..abb4388b9 100644
--- a/test/SuperSocket.Tests/CommandTest.cs
+++ b/test/SuperSocket.Tests/CommandTest.cs
@@ -14,7 +14,6 @@
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Xunit;
-using Xunit.Abstractions;
using System.Threading;
using SuperSocket.Tests.Command;
using SuperSocket.Server;
diff --git a/test/SuperSocket.Tests/Extensions.cs b/test/SuperSocket.Tests/Extensions.cs
index 46820676c..0d1bcbff6 100644
--- a/test/SuperSocket.Tests/Extensions.cs
+++ b/test/SuperSocket.Tests/Extensions.cs
@@ -14,7 +14,6 @@
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Xunit;
-using Xunit.Abstractions;
using SuperSocket.Server;
using System.Threading;
using SuperSocket.Tests.Command;
diff --git a/test/SuperSocket.Tests/FixedHeaderProtocolTest.cs b/test/SuperSocket.Tests/FixedHeaderProtocolTest.cs
index 32276e9f3..3c7318e26 100644
--- a/test/SuperSocket.Tests/FixedHeaderProtocolTest.cs
+++ b/test/SuperSocket.Tests/FixedHeaderProtocolTest.cs
@@ -7,7 +7,6 @@
using SuperSocket.Server.Host;
using SuperSocket.Server.Abstractions;
using Xunit;
-using Xunit.Abstractions;
namespace SuperSocket.Tests
{
diff --git a/test/SuperSocket.Tests/FixedSizeProtocolTest.cs b/test/SuperSocket.Tests/FixedSizeProtocolTest.cs
index dd19ad12b..ca177f76e 100644
--- a/test/SuperSocket.Tests/FixedSizeProtocolTest.cs
+++ b/test/SuperSocket.Tests/FixedSizeProtocolTest.cs
@@ -8,7 +8,6 @@
using SuperSocket.Server.Host;
using SuperSocket.Server.Abstractions;
using Xunit;
-using Xunit.Abstractions;
namespace SuperSocket.Tests
{
diff --git a/test/SuperSocket.Tests/GlobalAssembly.cs b/test/SuperSocket.Tests/GlobalAssembly.cs
new file mode 100644
index 000000000..7d7a98305
--- /dev/null
+++ b/test/SuperSocket.Tests/GlobalAssembly.cs
@@ -0,0 +1,3 @@
+using SuperSocket.Tests;
+
+[assembly:TestLife]
\ No newline at end of file
diff --git a/test/SuperSocket.Tests/HttpPipelineFilterTest.cs b/test/SuperSocket.Tests/HttpPipelineFilterTest.cs
index 52e98f3d9..7108f8970 100644
--- a/test/SuperSocket.Tests/HttpPipelineFilterTest.cs
+++ b/test/SuperSocket.Tests/HttpPipelineFilterTest.cs
@@ -16,7 +16,6 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Xunit;
-using Xunit.Abstractions;
using SuperSocket.Client;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Console;
diff --git a/test/SuperSocket.Tests/MainTest.cs b/test/SuperSocket.Tests/MainTest.cs
index b2df33fdc..934ec40bc 100644
--- a/test/SuperSocket.Tests/MainTest.cs
+++ b/test/SuperSocket.Tests/MainTest.cs
@@ -22,7 +22,6 @@
using SuperSocket.Server.Abstractions.Session;
using SuperSocket.Server.Host;
using Xunit;
-using Xunit.Abstractions;
///
/// Run selected test case by command
diff --git a/test/SuperSocket.Tests/ObjectPipeTest.cs b/test/SuperSocket.Tests/ObjectPipeTest.cs
index 0e7ad1e89..b39518137 100644
--- a/test/SuperSocket.Tests/ObjectPipeTest.cs
+++ b/test/SuperSocket.Tests/ObjectPipeTest.cs
@@ -3,7 +3,6 @@
using System.Text;
using System.Threading.Tasks;
using Xunit;
-using Xunit.Abstractions;
using System.Threading;
using SuperSocket.Connection;
diff --git a/test/SuperSocket.Tests/PackageHandlingContextAccessorTest.cs b/test/SuperSocket.Tests/PackageHandlingContextAccessorTest.cs
index 42133f63e..1e01d5752 100644
--- a/test/SuperSocket.Tests/PackageHandlingContextAccessorTest.cs
+++ b/test/SuperSocket.Tests/PackageHandlingContextAccessorTest.cs
@@ -13,7 +13,6 @@
using System.Text;
using System.Threading.Tasks;
using Xunit;
-using Xunit.Abstractions;
using System.Threading;
namespace SuperSocket.Tests
diff --git a/test/SuperSocket.Tests/PerfTest.cs b/test/SuperSocket.Tests/PerfTest.cs
index 750a9bd74..7a7d94dd3 100644
--- a/test/SuperSocket.Tests/PerfTest.cs
+++ b/test/SuperSocket.Tests/PerfTest.cs
@@ -8,7 +8,6 @@
using SuperSocket.Server;
using SuperSocket.Server.Host;
using Xunit;
-using Xunit.Abstractions;
namespace SuperSocket.Tests
{
diff --git a/test/SuperSocket.Tests/ProtocolTestBase.cs b/test/SuperSocket.Tests/ProtocolTestBase.cs
index 19efdc3c0..86e7d53bd 100644
--- a/test/SuperSocket.Tests/ProtocolTestBase.cs
+++ b/test/SuperSocket.Tests/ProtocolTestBase.cs
@@ -11,7 +11,6 @@
using SuperSocket.Server;
using SuperSocket.Server.Abstractions;
using Xunit;
-using Xunit.Abstractions;
namespace SuperSocket.Tests
{
diff --git a/test/SuperSocket.Tests/ProxyProtocolTest.cs b/test/SuperSocket.Tests/ProxyProtocolTest.cs
index 96194d67e..d96d61e3b 100644
--- a/test/SuperSocket.Tests/ProxyProtocolTest.cs
+++ b/test/SuperSocket.Tests/ProxyProtocolTest.cs
@@ -6,7 +6,6 @@
using SuperSocket.Server.Host;
using SuperSocket.Server.Abstractions;
using Xunit;
-using Xunit.Abstractions;
using System.Net;
using System.Linq;
using System.Threading.Tasks;
diff --git a/test/SuperSocket.Tests/ServerOptionsTest.cs b/test/SuperSocket.Tests/ServerOptionsTest.cs
index ab1801a5a..2669363c2 100644
--- a/test/SuperSocket.Tests/ServerOptionsTest.cs
+++ b/test/SuperSocket.Tests/ServerOptionsTest.cs
@@ -16,7 +16,6 @@
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Xunit;
-using Xunit.Abstractions;
using System.Threading;
namespace SuperSocket.Tests
diff --git a/test/SuperSocket.Tests/SessionContainerTest.cs b/test/SuperSocket.Tests/SessionContainerTest.cs
index 52c4c57bd..d3ca14ba8 100644
--- a/test/SuperSocket.Tests/SessionContainerTest.cs
+++ b/test/SuperSocket.Tests/SessionContainerTest.cs
@@ -9,7 +9,6 @@
using SuperSocket.ProtoBase;
using Microsoft.Extensions.DependencyInjection;
using Xunit;
-using Xunit.Abstractions;
using System.Threading;
using SuperSocket.Connection;
using SuperSocket.Server;
diff --git a/test/SuperSocket.Tests/SessionTest.cs b/test/SuperSocket.Tests/SessionTest.cs
index da9923e06..89f85b21a 100644
--- a/test/SuperSocket.Tests/SessionTest.cs
+++ b/test/SuperSocket.Tests/SessionTest.cs
@@ -6,7 +6,6 @@
using System.Threading.Tasks;
using SuperSocket.ProtoBase;
using Xunit;
-using Xunit.Abstractions;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.DependencyInjection;
using SuperSocket;
diff --git a/test/SuperSocket.Tests/SuperSocket.Tests.csproj b/test/SuperSocket.Tests/SuperSocket.Tests.csproj
index d0a768774..6ed4e942b 100755
--- a/test/SuperSocket.Tests/SuperSocket.Tests.csproj
+++ b/test/SuperSocket.Tests/SuperSocket.Tests.csproj
@@ -20,7 +20,7 @@
-
+
diff --git a/test/SuperSocket.Tests/SwitchProtocolTest.cs b/test/SuperSocket.Tests/SwitchProtocolTest.cs
index 261df80e2..ae76c7033 100644
--- a/test/SuperSocket.Tests/SwitchProtocolTest.cs
+++ b/test/SuperSocket.Tests/SwitchProtocolTest.cs
@@ -9,7 +9,6 @@
using SuperSocket.Server.Abstractions;
using SuperSocket.Server.Host;
using Xunit;
-using Xunit.Abstractions;
namespace SuperSocket.Tests
{
diff --git a/test/SuperSocket.Tests/TerminatorProtocolTest.cs b/test/SuperSocket.Tests/TerminatorProtocolTest.cs
index c85cf1440..c2700fe7a 100644
--- a/test/SuperSocket.Tests/TerminatorProtocolTest.cs
+++ b/test/SuperSocket.Tests/TerminatorProtocolTest.cs
@@ -7,7 +7,6 @@
using SuperSocket.Server.Abstractions;
using SuperSocket.Server.Host;
using Xunit;
-using Xunit.Abstractions;
namespace SuperSocket.Tests
{
diff --git a/test/SuperSocket.Tests/TestClassBase.cs b/test/SuperSocket.Tests/TestClassBase.cs
index 7f3d93085..15e1a2ca8 100644
--- a/test/SuperSocket.Tests/TestClassBase.cs
+++ b/test/SuperSocket.Tests/TestClassBase.cs
@@ -14,7 +14,6 @@
using SuperSocket.Server.Host;
using SuperSocket.Server.Abstractions.Host;
using Xunit;
-using Xunit.Abstractions;
namespace SuperSocket.Tests
{
diff --git a/test/SuperSocket.Tests/TestLifeAttribute.cs b/test/SuperSocket.Tests/TestLifeAttribute.cs
new file mode 100644
index 000000000..c2acf7366
--- /dev/null
+++ b/test/SuperSocket.Tests/TestLifeAttribute.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Reflection;
+using Xunit.v3;
+
+namespace SuperSocket.Tests
+{
+ public class TestLifeAttribute : BeforeAfterTestAttribute
+ {
+ public override void Before(MethodInfo methodUnderTest, IXunitTest test)
+ {
+ Console.WriteLine($"Start to test {test.TestDisplayName}...");
+ }
+
+ public override void After(MethodInfo methodUnderTest, IXunitTest test)
+ {
+ Console.WriteLine($"Finished the test {test.TestDisplayName}...");
+ }
+ }
+}
diff --git a/test/SuperSocket.Tests/WebSocket/WebSocketBasicTest.cs b/test/SuperSocket.Tests/WebSocket/WebSocketBasicTest.cs
index 2fb5ebdab..c57ed895c 100644
--- a/test/SuperSocket.Tests/WebSocket/WebSocketBasicTest.cs
+++ b/test/SuperSocket.Tests/WebSocket/WebSocketBasicTest.cs
@@ -24,7 +24,6 @@
using SuperSocket.Server.Abstractions.Host;
using SuperSocket.Tests.Command;
using Xunit;
-using Xunit.Abstractions;
using SuperSocket.Server.Abstractions.Session;
diff --git a/test/SuperSocket.Tests/WebSocket/WebSocketServerTestBase.cs b/test/SuperSocket.Tests/WebSocket/WebSocketServerTestBase.cs
index 06dfbee68..4497fb51d 100644
--- a/test/SuperSocket.Tests/WebSocket/WebSocketServerTestBase.cs
+++ b/test/SuperSocket.Tests/WebSocket/WebSocketServerTestBase.cs
@@ -6,7 +6,6 @@
using System.Threading.Tasks;
using SuperSocket.ProtoBase;
using Xunit;
-using Xunit.Abstractions;
using Microsoft.Extensions.Hosting;
using SuperSocket;
using SuperSocket.WebSocket.Server;