diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 4778c8e..dfd7e70 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -25,8 +25,8 @@ jobs:
run: dotnet build GrowthBook/GrowthBook.csproj --configuration Release
# current tests are written for visual studio only
- # - name: Test
- # run: dotnet test Test/Growthook.Tests.csproj --configuration Release --no-build
+ - name: Test
+ run: dotnet test GrowthBook.Tests/GrowthBook.Tests.csproj --logger:"console;verbosity=normal"
- name: pack
run: dotnet pack --configuration Release --no-build --output dist GrowthBook/GrowthBook.csproj
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d635173..6848e49 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [0.1.2]
+
+- ci: moved from MSTest to Xunit
+
## [0.1.1]
- Handle null namespace property.
diff --git a/GrowthBook.Tests/GrowthBook.Tests.csproj b/GrowthBook.Tests/GrowthBook.Tests.csproj
new file mode 100644
index 0000000..e9b5283
--- /dev/null
+++ b/GrowthBook.Tests/GrowthBook.Tests.csproj
@@ -0,0 +1,51 @@
+
+
+
+ net7.0
+ latest
+
+
+
+ AnyCPU
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GrowthBook.Tests/GrowthBookTests.cs b/GrowthBook.Tests/GrowthBookTests.cs
new file mode 100644
index 0000000..1ba7220
--- /dev/null
+++ b/GrowthBook.Tests/GrowthBookTests.cs
@@ -0,0 +1,156 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+
+using GrowthBook.Tests.Json;
+
+using Newtonsoft.Json.Linq;
+
+using Xunit;
+
+namespace GrowthBook.Tests;
+
+public class GrowthBookTests
+{
+
+ #region helpers
+ public static JObject getStandardCases()
+ {
+ return JObject.Parse(JsonTestHelpers.GetTestJson("standard-cases"));
+ }
+
+ public static JObject getCustomCases()
+ {
+ return JObject.Parse(JsonTestHelpers.GetTestJson("custom-cases"));
+ }
+
+ public static string GetTestNames(MethodInfo methodInfo, object[] values)
+ {
+ return $"{methodInfo.Name} - {values[0]}";
+ }
+ #endregion
+
+ #region data
+ public static IEnumerable