Browse Source

Upgrade to xUnit v3 (#2154)

Marko Lahma 2 weeks ago
parent
commit
cdad56736d

+ 1 - 1
Directory.Packages.props

@@ -26,7 +26,7 @@
     <PackageVersion Include="Spectre.Console.Cli" Version="0.45.0" />
     <PackageVersion Include="Spectre.Console.Cli" Version="0.45.0" />
     <PackageVersion Include="System.Text.Json" Version="9.0.6" />
     <PackageVersion Include="System.Text.Json" Version="9.0.6" />
     <PackageVersion Include="Test262Harness" Version="1.0.2" />
     <PackageVersion Include="Test262Harness" Version="1.0.2" />
-    <PackageVersion Include="xunit" Version="2.9.3" />
+    <PackageVersion Include="xunit.v3" Version="3.0.0" />
     <PackageVersion Include="xunit.runner.visualstudio" Version="3.1.3" PrivateAssets="all" />
     <PackageVersion Include="xunit.runner.visualstudio" Version="3.1.3" PrivateAssets="all" />
     <PackageVersion Include="YantraJS.Core" Version="1.2.286" />
     <PackageVersion Include="YantraJS.Core" Version="1.2.286" />
   </ItemGroup>
   </ItemGroup>

+ 2 - 1
Jint.Tests.PublicInterface/Jint.Tests.PublicInterface.csproj

@@ -6,6 +6,7 @@
     <IsPackable>false</IsPackable>
     <IsPackable>false</IsPackable>
     <NoWarn>612</NoWarn>
     <NoWarn>612</NoWarn>
     <SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
     <SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
+    <OutputType>Exe</OutputType>
   </PropertyGroup>
   </PropertyGroup>
 
 
 
 
@@ -24,7 +25,7 @@
     <PackageReference Include="Microsoft.Extensions.TimeProvider.Testing" />
     <PackageReference Include="Microsoft.Extensions.TimeProvider.Testing" />
     <PackageReference Include="SourceMaps" />
     <PackageReference Include="SourceMaps" />
     <PackageReference Include="System.Text.Json" Condition="!$([MSBuild]::IsTargetFrameworkCompatible($(TargetFramework), 'net8.0'))" />
     <PackageReference Include="System.Text.Json" Condition="!$([MSBuild]::IsTargetFrameworkCompatible($(TargetFramework), 'net8.0'))" />
-    <PackageReference Include="xunit" />
+    <PackageReference Include="xunit.v3" />
     <PackageReference Include="xunit.runner.visualstudio" />
     <PackageReference Include="xunit.runner.visualstudio" />
   </ItemGroup>
   </ItemGroup>
 
 

+ 2 - 1
Jint.Tests/Jint.Tests.csproj

@@ -7,6 +7,7 @@
     <SignAssembly>true</SignAssembly>
     <SignAssembly>true</SignAssembly>
     <IsPackable>false</IsPackable>
     <IsPackable>false</IsPackable>
     <NoWarn>$(NoWarn);612</NoWarn>
     <NoWarn>$(NoWarn);612</NoWarn>
+    <OutputType>Exe</OutputType>
   </PropertyGroup>
   </PropertyGroup>
 
 
   <ItemGroup>
   <ItemGroup>
@@ -26,7 +27,7 @@
     <PackageReference Include="MongoDB.Bson.signed" />
     <PackageReference Include="MongoDB.Bson.signed" />
     <PackageReference Include="Newtonsoft.Json" />
     <PackageReference Include="Newtonsoft.Json" />
     <PackageReference Include="System.Text.Json" Condition="'$(TargetFramework)' == 'net472'" />
     <PackageReference Include="System.Text.Json" Condition="'$(TargetFramework)' == 'net472'" />
-    <PackageReference Include="xunit" />
+    <PackageReference Include="xunit.v3" />
     <PackageReference Include="xunit.runner.visualstudio" />
     <PackageReference Include="xunit.runner.visualstudio" />
   </ItemGroup>
   </ItemGroup>
 
 

+ 8 - 8
Jint.Tests/ReplaceCulture.cs

@@ -3,7 +3,7 @@
 
 
 using System.Globalization;
 using System.Globalization;
 using System.Reflection;
 using System.Reflection;
-using Xunit.Sdk;
+using Xunit.v3;
 
 
 namespace Jint.Tests;
 namespace Jint.Tests;
 
 
@@ -64,7 +64,7 @@ public class ReplaceCultureAttribute : BeforeAfterTestAttribute
 #endif
 #endif
     public CultureInfo UICulture { get; }
     public CultureInfo UICulture { get; }
 
 
-    public override void Before(MethodInfo methodUnderTest)
+    public override void Before(MethodInfo methodUnderTest, IXunitTest test)
     {
     {
         _originalCulture = CultureInfo.CurrentCulture;
         _originalCulture = CultureInfo.CurrentCulture;
         _originalUICulture = CultureInfo.CurrentUICulture;
         _originalUICulture = CultureInfo.CurrentUICulture;
@@ -73,20 +73,20 @@ public class ReplaceCultureAttribute : BeforeAfterTestAttribute
         System.Threading.Thread.CurrentThread.CurrentCulture = Culture;
         System.Threading.Thread.CurrentThread.CurrentCulture = Culture;
         System.Threading.Thread.CurrentThread.CurrentUICulture = UICulture;
         System.Threading.Thread.CurrentThread.CurrentUICulture = UICulture;
 #else
 #else
-            CultureInfo.CurrentCulture = Culture;
-            CultureInfo.CurrentUICulture = UICulture;
+        CultureInfo.CurrentCulture = Culture;
+        CultureInfo.CurrentUICulture = UICulture;
 #endif
 #endif
 
 
     }
     }
 
 
-    public override void After(MethodInfo methodUnderTest)
+    public override void After(MethodInfo methodUnderTest, IXunitTest test)
     {
     {
 #if NETFRAMEWORK
 #if NETFRAMEWORK
         System.Threading.Thread.CurrentThread.CurrentCulture = _originalCulture;
         System.Threading.Thread.CurrentThread.CurrentCulture = _originalCulture;
         System.Threading.Thread.CurrentThread.CurrentUICulture = _originalUICulture;
         System.Threading.Thread.CurrentThread.CurrentUICulture = _originalUICulture;
 #else
 #else
-            CultureInfo.CurrentCulture = _originalCulture;
-            CultureInfo.CurrentUICulture = _originalUICulture;
+        CultureInfo.CurrentCulture = _originalCulture;
+        CultureInfo.CurrentUICulture = _originalUICulture;
 #endif
 #endif
     }
     }
-}
+}

+ 5 - 2
Jint.Tests/RunnableInDebugOnlyAttribute.cs

@@ -1,14 +1,17 @@
 using System.Diagnostics;
 using System.Diagnostics;
+using System.Runtime.CompilerServices;
 
 
 namespace Jint.Tests;
 namespace Jint.Tests;
 
 
 public class RunnableInDebugOnlyAttribute : FactAttribute
 public class RunnableInDebugOnlyAttribute : FactAttribute
 {
 {
-    public RunnableInDebugOnlyAttribute()
+    public RunnableInDebugOnlyAttribute(
+        [CallerFilePath] string sourceFilePath = null,
+        [CallerLineNumber] int sourceLineNumber = -1) : base(sourceFilePath, sourceLineNumber)
     {
     {
         if (!Debugger.IsAttached)
         if (!Debugger.IsAttached)
         {
         {
             Skip = "Only running in interactive mode.";
             Skip = "Only running in interactive mode.";
         }
         }
     }
     }
-}
+}

+ 1 - 1
Jint.Tests/Runtime/AsyncTests.cs

@@ -357,7 +357,7 @@ public class AsyncTests
             }
             }
 
 
             await Task.WhenAll(tasks.Select(t => t.Task));
             await Task.WhenAll(tasks.Select(t => t.Task));
-            await Task.Delay(100);
+            await Task.Delay(100, TestContext.Current.CancellationToken);
         }
         }
     }
     }
 
 

+ 0 - 1
Jint.Tests/Runtime/EngineTests.cs

@@ -7,7 +7,6 @@ using Jint.Native.Object;
 using Jint.Runtime;
 using Jint.Runtime;
 using Jint.Runtime.Debugger;
 using Jint.Runtime.Debugger;
 using Jint.Tests.Runtime.Debugger;
 using Jint.Tests.Runtime.Debugger;
-using Xunit.Abstractions;
 
 
 #pragma warning disable 618
 #pragma warning disable 618
 
 

+ 2 - 3
Jint.Tests/Runtime/TypeConverterTests.cs

@@ -1,6 +1,5 @@
 using Jint.Native;
 using Jint.Native;
 using Jint.Runtime;
 using Jint.Runtime;
-using Xunit.Abstractions;
 
 
 namespace Jint.Tests.Runtime;
 namespace Jint.Tests.Runtime;
 
 
@@ -17,7 +16,7 @@ public class TypeConverterTests
             ;
             ;
     }
     }
 
 
-    public static readonly IEnumerable<object[]> ConvertNumberToInt32AndUint32TestData = new TheoryData<double, int>()
+    public static readonly TheoryData<double, int> ConvertNumberToInt32AndUint32TestData = new()
     {
     {
         { 0.0, 0 },
         { 0.0, 0 },
         { -0.0, 0 },
         { -0.0, 0 },
@@ -91,4 +90,4 @@ public class TypeConverterTests
                 equal(1, bval);
                 equal(1, bval);
             ");
             ");
     }
     }
-}
+}

+ 1 - 1
Jint.Tests/Runtime/WeakSetMapTests.cs

@@ -21,7 +21,7 @@ public class WeakSetMapTests
         Assert.Equal("Constructor WeakSet requires 'new'", e.Message);
         Assert.Equal("Constructor WeakSet requires 'new'", e.Message);
     }
     }
 
 
-    public static IEnumerable<object[]> PrimitiveKeys = new TheoryData<JsValue>
+    public static TheoryData<JsValue> PrimitiveKeys = new()
     {
     {
         JsValue.Null,
         JsValue.Null,
         JsValue.Undefined,
         JsValue.Undefined,