diff --git a/Jenkinsfile b/Jenkinsfile
index 8b12c0b..4f6b1e1 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -18,8 +18,8 @@ node {
}
stage('Test') {
- bat 'IF NOT EXIST GameBinaries MKDIR GameBinaries'
- bat "\"packages/xunit.runner.console.2.2.0/tools/xunit.console.exe\" \"bin-test/x64/Release/Torch.Tests.dll\" \"bin-test/x64/Release/Torch.Server.Tests.dll\" -parallel none -xml \"reports/Torch.Tests.xml\""
+ bat 'IF NOT EXIST reports MKDIR reports'
+ bat "\"packages/xunit.runner.console.2.2.0/tools/xunit.console.exe\" \"bin-test/x64/Release/Torch.Tests.dll\" \"bin-test/x64/Release/Torch.Server.Tests.dll\" \"bin-test/x64/Release/Torch.Client.Tests.dll\" -parallel none -xml \"reports/Torch.Tests.xml\""
step([
$class: 'XUnitBuilder',
thresholdMode: 1,
diff --git a/Torch.Client.Tests/Properties/AssemblyInfo.cs b/Torch.Client.Tests/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..137a83c
--- /dev/null
+++ b/Torch.Client.Tests/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Torch.Client.Tests")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Torch.Client.Tests")]
+[assembly: AssemblyCopyright("Copyright © 2017")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("632e78c0-0dac-4b71-b411-2f1b333cc310")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Torch.Client.Tests/Torch.Client.Tests.csproj b/Torch.Client.Tests/Torch.Client.Tests.csproj
new file mode 100644
index 0000000..a95e05b
--- /dev/null
+++ b/Torch.Client.Tests/Torch.Client.Tests.csproj
@@ -0,0 +1,85 @@
+
+
+
+
+ {632E78C0-0DAC-4B71-B411-2F1B333CC310}
+ Library
+ Properties
+ Torch.Client.Tests
+ Torch.Client.Tests
+ v4.6.1
+ 512
+
+
+
+ 1591,0649
+
+
+ true
+ $(SolutionDir)\bin-test\x64\Debug\
+ DEBUG;TRACE
+ full
+ x64
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+ $(SolutionDir)\bin-test\x64\Release\
+ TRACE
+ true
+ pdbonly
+ x64
+ prompt
+ MinimumRecommendedRules.ruleset
+ $(SolutionDir)\bin-test\x64\Release\Torch.Client.Tests.xml
+
+
+
+
+
+
+
+
+
+
+
+ ..\packages\xunit.abstractions.2.0.1\lib\net35\xunit.abstractions.dll
+
+
+ ..\packages\xunit.assert.2.2.0\lib\netstandard1.1\xunit.assert.dll
+
+
+ ..\packages\xunit.extensibility.core.2.2.0\lib\netstandard1.1\xunit.core.dll
+
+
+ ..\packages\xunit.extensibility.execution.2.2.0\lib\net452\xunit.execution.desktop.dll
+
+
+
+
+
+
+
+
+ {fba5d932-6254-4a1e-baf4-e229fa94e3c2}
+ Torch.API
+
+
+ {e36df745-260b-4956-a2e8-09f08b2e7161}
+ Torch.Client
+
+
+ {c3c8b671-6ad1-44aa-a8da-e0c0dc0fedf5}
+ Torch.Tests
+
+
+ {7e01635c-3b67-472e-bcd6-c5539564f214}
+ Torch
+ True
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Torch.Client.Tests/TorchClientReflectionTest.cs b/Torch.Client.Tests/TorchClientReflectionTest.cs
new file mode 100644
index 0000000..96f4ea1
--- /dev/null
+++ b/Torch.Client.Tests/TorchClientReflectionTest.cs
@@ -0,0 +1,67 @@
+using System.Collections.Generic;
+using Torch.Client;
+using Torch.Tests;
+using Torch.Utils;
+using Xunit;
+
+namespace Torch.Server.Tests
+{
+ public class TorchClientReflectionTest
+ {
+ static TorchClientReflectionTest()
+ {
+ TestUtils.Init();
+ }
+
+ private static ReflectionTestManager _manager;
+
+ private static ReflectionTestManager Manager()
+ {
+ if (_manager != null)
+ return _manager;
+
+ return _manager = new ReflectionTestManager().Init(typeof(TorchClient).Assembly);
+ }
+
+ public static IEnumerable