diff --git a/Directory.Packages.props b/Directory.Packages.props
index 872f80991..78591630c 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -47,7 +47,7 @@
-
-
+
+
diff --git a/Pipeline/Build.FrameworkTest.cs b/Pipeline/Build.FrameworkTest.cs
index 0fb8f80ad..9822ef7ec 100644
--- a/Pipeline/Build.FrameworkTest.cs
+++ b/Pipeline/Build.FrameworkTest.cs
@@ -15,7 +15,8 @@ partial class Build
Project[] FrameworkUnitTestProjects =>
[
Solution.Tests.Frameworks.aweXpect_Frameworks_Fallback_Tests,
- Solution.Tests.Frameworks.aweXpect_Frameworks_MsTest_Tests,
+ Solution.Tests.Frameworks.aweXpect_Frameworks_MsTest3_Tests,
+ Solution.Tests.Frameworks.aweXpect_Frameworks_MsTest4_Tests,
Solution.Tests.Frameworks.aweXpect_Frameworks_NUnit4_Tests,
Solution.Tests.Frameworks.aweXpect_Frameworks_NUnit3_Tests,
Solution.Tests.Frameworks.aweXpect_Frameworks_Xunit2_Tests,
diff --git a/Source/aweXpect.Frameworks/FrameworkGenerator.cs b/Source/aweXpect.Frameworks/FrameworkGenerator.cs
index 6865c2f40..babb2b7a9 100644
--- a/Source/aweXpect.Frameworks/FrameworkGenerator.cs
+++ b/Source/aweXpect.Frameworks/FrameworkGenerator.cs
@@ -234,25 +234,27 @@ private interface ITestTimeoutException;
void IIncrementalGenerator.Initialize(IncrementalGeneratorInitializationContext context)
{
- IncrementalValueProvider<(bool hasMsTest, bool hasNunit, bool hasTUnit, bool hasXunit2, bool hasXunit3Core, bool
+ IncrementalValueProvider<(bool hasMsTest3, bool hasMsTest4, bool hasNunit, bool hasTUnit, bool hasXunit2, bool hasXunit3Core, bool
hasXunit3Assert)> settings = context.CompilationProvider
.Select((c, _) =>
{
- bool hasMsTest =
+ bool hasMsTest3 =
c.ReferencedAssemblyNames.Any(x => x.Name == "Microsoft.VisualStudio.TestPlatform.TestFramework");
+ bool hasMsTest4 =
+ c.ReferencedAssemblyNames.Any(x => x.Name == "MSTest.TestFramework");
bool hasNunit = c.ReferencedAssemblyNames.Any(x => x.Name == "nunit.framework");
bool hasTUnit = c.ReferencedAssemblyNames.Any(x => x.Name == "TUnit.Core") &&
c.ReferencedAssemblyNames.Any(x => x.Name == "TUnit.Assertions");
bool hasXunit2 = c.ReferencedAssemblyNames.Any(x => x.Name == "xunit.assert");
bool hasXunit3Core = c.ReferencedAssemblyNames.Any(x => x.Name == "xunit.v3.core");
bool hasXunit3Assert = c.ReferencedAssemblyNames.Any(x => x.Name == "xunit.v3.assert");
- return (hasMsTest, hasNunit, hasTUnit, hasXunit2, hasXunit3Core, hasXunit3Assert);
+ return (hasMsTest3, hasMsTest4, hasNunit, hasTUnit, hasXunit2, hasXunit3Core, hasXunit3Assert);
});
// Generate the source from the captured values
context.RegisterSourceOutput(settings, static (spc, opts) =>
{
- if (opts.hasMsTest)
+ if (opts.hasMsTest3 || opts.hasMsTest4)
{
spc.AddSource("MsTest.g.cs", MsTestAdapter);
}
diff --git a/Source/aweXpect.Frameworks/Properties/launchSettings.json b/Source/aweXpect.Frameworks/Properties/launchSettings.json
index bd75a0398..77c8d568c 100644
--- a/Source/aweXpect.Frameworks/Properties/launchSettings.json
+++ b/Source/aweXpect.Frameworks/Properties/launchSettings.json
@@ -3,7 +3,7 @@
"profiles": {
"Generators": {
"commandName": "DebugRoslynComponent",
- "targetProject": "../../Tests/Frameworks/aweXpect.Frameworks.TUnit.Tests/aweXpect.Frameworks.TUnit.Tests.csproj"
+ "targetProject": "../../Tests/Frameworks/aweXpect.Frameworks.MsTest4.Tests/aweXpect.Frameworks.MsTest4.Tests.csproj"
}
}
}
diff --git a/Tests/Frameworks/aweXpect.Frameworks.MsTest.Tests/MsTestFrameworkTests.cs b/Tests/Frameworks/aweXpect.Frameworks.MsTest3.Tests/MsTest3FrameworkTests.cs
similarity index 95%
rename from Tests/Frameworks/aweXpect.Frameworks.MsTest.Tests/MsTestFrameworkTests.cs
rename to Tests/Frameworks/aweXpect.Frameworks.MsTest3.Tests/MsTest3FrameworkTests.cs
index 34be1ffaf..602cfa95c 100644
--- a/Tests/Frameworks/aweXpect.Frameworks.MsTest.Tests/MsTestFrameworkTests.cs
+++ b/Tests/Frameworks/aweXpect.Frameworks.MsTest3.Tests/MsTest3FrameworkTests.cs
@@ -1,7 +1,7 @@
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
-namespace aweXpect.Frameworks.MsTest.Tests;
+namespace aweXpect.Frameworks.MsTest3.Tests;
[TestClass]
public sealed class MsTestFrameworkTests
diff --git a/Tests/Frameworks/aweXpect.Frameworks.MsTest3.Tests/aweXpect.Frameworks.MsTest3.Tests.csproj b/Tests/Frameworks/aweXpect.Frameworks.MsTest3.Tests/aweXpect.Frameworks.MsTest3.Tests.csproj
new file mode 100644
index 000000000..6b225fce0
--- /dev/null
+++ b/Tests/Frameworks/aweXpect.Frameworks.MsTest3.Tests/aweXpect.Frameworks.MsTest3.Tests.csproj
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
diff --git a/Tests/Frameworks/aweXpect.Frameworks.MsTest4.Tests/MsTest4FrameworkTests.cs b/Tests/Frameworks/aweXpect.Frameworks.MsTest4.Tests/MsTest4FrameworkTests.cs
new file mode 100644
index 000000000..d93ecf96b
--- /dev/null
+++ b/Tests/Frameworks/aweXpect.Frameworks.MsTest4.Tests/MsTest4FrameworkTests.cs
@@ -0,0 +1,38 @@
+using System.Threading.Tasks;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace aweXpect.Frameworks.MsTest4.Tests;
+
+[TestClass]
+public sealed class MsTestFrameworkTests
+{
+ [TestMethod]
+ public async Task OnFail_WhenUsingMsTestAsTestFramework_ShouldThrowAssertFailedException()
+ {
+ void Act()
+ => Fail.Test("my message");
+
+ await Expect.That(Act).Throws()
+ .WithMessage("my message");
+ }
+
+ [TestMethod]
+ public async Task OnInconclusive_WhenUsingMsTestAsTestFramework_ShouldThrowAssertInconclusiveException()
+ {
+ void Act()
+ => Fail.Inconclusive("my message");
+
+ await Expect.That(Act).Throws()
+ .WithMessage("my message");
+ }
+
+ [TestMethod]
+ public async Task OnSkip_WhenUsingMsTestAsTestFramework_ShouldThrowAssertInconclusiveException()
+ {
+ void Act()
+ => Skip.Test("my message");
+
+ await Expect.That(Act).Throws()
+ .WithMessage("my message");
+ }
+}
diff --git a/Tests/Frameworks/aweXpect.Frameworks.MsTest.Tests/aweXpect.Frameworks.MsTest.Tests.csproj b/Tests/Frameworks/aweXpect.Frameworks.MsTest4.Tests/aweXpect.Frameworks.MsTest4.Tests.csproj
similarity index 100%
rename from Tests/Frameworks/aweXpect.Frameworks.MsTest.Tests/aweXpect.Frameworks.MsTest.Tests.csproj
rename to Tests/Frameworks/aweXpect.Frameworks.MsTest4.Tests/aweXpect.Frameworks.MsTest4.Tests.csproj
diff --git a/aweXpect.sln b/aweXpect.sln
index bbe94e9bb..7b1b41891 100644
--- a/aweXpect.sln
+++ b/aweXpect.sln
@@ -77,7 +77,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aweXpect.Benchmarks", "Benc
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aweXpect.Frameworks.Fallback.Tests", "Tests\Frameworks\aweXpect.Frameworks.Fallback.Tests\aweXpect.Frameworks.Fallback.Tests.csproj", "{A672BA16-8BE2-4E4F-A6DD-59911284EDF8}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aweXpect.Frameworks.MsTest.Tests", "Tests\Frameworks\aweXpect.Frameworks.MsTest.Tests\aweXpect.Frameworks.MsTest.Tests.csproj", "{1EC393AD-DE25-4C0E-A8B5-B19A2843A4E2}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aweXpect.Frameworks.MsTest3.Tests", "Tests\Frameworks\aweXpect.Frameworks.MsTest3.Tests\aweXpect.Frameworks.MsTest3.Tests.csproj", "{1EC393AD-DE25-4C0E-A8B5-B19A2843A4E2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aweXpect.Frameworks.Xunit3.Tests", "Tests\Frameworks\aweXpect.Frameworks.Xunit3.Tests\aweXpect.Frameworks.Xunit3.Tests.csproj", "{5D0060AC-986B-4C28-A871-BA0EC9223DA7}"
EndProject
@@ -97,6 +97,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aweXpect.SourceGenerators",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aweXpect.Frameworks", "Source\aweXpect.Frameworks\aweXpect.Frameworks.csproj", "{75E57A42-1C09-4923-B1E1-A27937189E9A}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "aweXpect.Frameworks.MsTest4.Tests", "Tests\Frameworks\aweXpect.Frameworks.MsTest4.Tests\aweXpect.Frameworks.MsTest4.Tests.csproj", "{14C9979C-21EF-424F-90A5-A7B2D96E297E}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -189,6 +191,10 @@ Global
{75E57A42-1C09-4923-B1E1-A27937189E9A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{75E57A42-1C09-4923-B1E1-A27937189E9A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{75E57A42-1C09-4923-B1E1-A27937189E9A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {14C9979C-21EF-424F-90A5-A7B2D96E297E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {14C9979C-21EF-424F-90A5-A7B2D96E297E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {14C9979C-21EF-424F-90A5-A7B2D96E297E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {14C9979C-21EF-424F-90A5-A7B2D96E297E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{97D64B45-D97E-4A94-9EF0-37BF25310EBA} = {9CC57AD0-4984-4618-96EA-01FFFCCD84FA}
@@ -213,5 +219,6 @@ Global
{4A940BE9-D9E0-4004-89D4-5D6E8CB37208} = {9CC57AD0-4984-4618-96EA-01FFFCCD84FA}
{6C70D2A0-3BB0-4FFC-9422-E0213562176C} = {9CC57AD0-4984-4618-96EA-01FFFCCD84FA}
{8FF9344F-E84E-47B8-AB28-575EF15E5C59} = {9CC57AD0-4984-4618-96EA-01FFFCCD84FA}
+ {14C9979C-21EF-424F-90A5-A7B2D96E297E} = {97A9E15D-5A21-4BA1-940B-7F42933DE0A5}
EndGlobalSection
EndGlobal