diff --git a/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.Test.DotNet8_0.verified.txt b/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.Test.DotNet8_0.verified.txt
index e0e2a7e2e9..cca5c88b27 100644
--- a/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.Test.DotNet8_0.verified.txt
+++ b/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.Test.DotNet8_0.verified.txt
@@ -1,16 +1,11 @@
[
//
#pragma warning disable
-namespace AssemblyLoaderTests;
-
-public static class AssemblyLoader
+public static class AssemblyLoader_Guid
{
[global::System.Runtime.CompilerServices.ModuleInitializer]
public static void Initialize()
{
- global::TUnit.Core.SourceRegistrar.RegisterAssembly(() => typeof(global::System.SequencePosition).Assembly);
- global::TUnit.Core.SourceRegistrar.RegisterAssembly(() => typeof(global::System.Xml.XmlNamedNodeMap).Assembly);
- global::TUnit.Core.SourceRegistrar.RegisterAssembly(() => typeof(global::System.Xml.Linq.XAttribute).Assembly);
global::TUnit.Core.SourceRegistrar.RegisterAssembly(() => typeof(global::TUnit.Core.AsyncEvent<>).Assembly);
}
}
diff --git a/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.Test.DotNet9_0.verified.txt b/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.Test.DotNet9_0.verified.txt
index 556c15a76a..cca5c88b27 100644
--- a/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.Test.DotNet9_0.verified.txt
+++ b/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.Test.DotNet9_0.verified.txt
@@ -1,17 +1,11 @@
[
//
#pragma warning disable
-namespace AssemblyLoaderTests;
-
-public static class AssemblyLoader
+public static class AssemblyLoader_Guid
{
[global::System.Runtime.CompilerServices.ModuleInitializer]
public static void Initialize()
{
- global::TUnit.Core.SourceRegistrar.RegisterAssembly(() => typeof(global::System.SequencePosition).Assembly);
- global::TUnit.Core.SourceRegistrar.RegisterAssembly(() => typeof(global::System.Diagnostics.ActivityChangedEventArgs).Assembly);
- global::TUnit.Core.SourceRegistrar.RegisterAssembly(() => typeof(global::System.Xml.XmlNamedNodeMap).Assembly);
- global::TUnit.Core.SourceRegistrar.RegisterAssembly(() => typeof(global::System.Xml.Linq.XAttribute).Assembly);
global::TUnit.Core.SourceRegistrar.RegisterAssembly(() => typeof(global::TUnit.Core.AsyncEvent<>).Assembly);
}
}
diff --git a/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.Test.Net4_7.verified.txt b/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.Test.Net4_7.verified.txt
index b099a991be..cca5c88b27 100644
--- a/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.Test.Net4_7.verified.txt
+++ b/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.Test.Net4_7.verified.txt
@@ -1,14 +1,11 @@
[
//
#pragma warning disable
-namespace AssemblyLoaderTests;
-
-public static class AssemblyLoader
+public static class AssemblyLoader_Guid
{
[global::System.Runtime.CompilerServices.ModuleInitializer]
public static void Initialize()
{
- global::TUnit.Core.SourceRegistrar.RegisterAssembly(() => typeof(global::System.Runtime.CompilerServices.AsyncMethodBuilderAttribute).Assembly);
global::TUnit.Core.SourceRegistrar.RegisterAssembly(() => typeof(global::TUnit.Core.AsyncEvent<>).Assembly);
}
}
diff --git a/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.cs b/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.cs
index 295d5415b8..523178b9bf 100644
--- a/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.cs
+++ b/TUnit.Core.SourceGenerator.Tests/AssemblyLoaderTests.cs
@@ -1,3 +1,4 @@
+using System.Runtime.InteropServices;
using TUnit.Core.SourceGenerator.CodeGenerators;
using TUnit.Core.SourceGenerator.Tests.Options;
@@ -9,9 +10,21 @@ internal class AssemblyLoaderTests : TestsBase
public Task Test() => RunTest(Path.Combine(Git.RootDirectory.FullName,
"TUnit.TestProject",
"BasicTests.cs"),
- new RunTestOptions()
+ new RunTestOptions
{
- VerifyConfigurator = verify => verify.UniqueForTargetFrameworkAndVersion()
+ VerifyConfigurator = verify =>
+ {
+ return verify.UniqueForTargetFrameworkAndVersion()
+ .ScrubLinesWithReplace(line =>
+ {
+ if (line.Contains("public static class AssemblyLoader"))
+ {
+ return "public static class AssemblyLoader_Guid";
+ }
+
+ return line;
+ });
+ }
},
async generatedFiles =>
{
diff --git a/TUnit.Core.SourceGenerator/CodeGenerators/AssemblyLoaderGenerator.cs b/TUnit.Core.SourceGenerator/CodeGenerators/AssemblyLoaderGenerator.cs
index aedede8c59..f3b0d2df8c 100644
--- a/TUnit.Core.SourceGenerator/CodeGenerators/AssemblyLoaderGenerator.cs
+++ b/TUnit.Core.SourceGenerator/CodeGenerators/AssemblyLoaderGenerator.cs
@@ -35,22 +35,16 @@ private void GenerateCode(SourceProductionContext context, Compilation compilati
.ToArray();
var sourceBuilder = new SourceCodeWriter();
-
+
sourceBuilder.WriteLine("// ");
sourceBuilder.WriteLine("#pragma warning disable");
-
- if(!string.IsNullOrEmpty(compilation.Assembly.Name))
- {
- sourceBuilder.WriteLine($"namespace {compilation.Assembly.Name};");
- sourceBuilder.WriteLine();
- }
-
- sourceBuilder.WriteLine("public static class AssemblyLoader");
+
+ sourceBuilder.WriteLine("public static class AssemblyLoader" + Guid.NewGuid().ToString("N"));
sourceBuilder.WriteLine("{");
sourceBuilder.WriteLine("[global::System.Runtime.CompilerServices.ModuleInitializer]");
sourceBuilder.WriteLine("public static void Initialize()");
sourceBuilder.WriteLine("{");
-
+
foreach (var type in types)
{
var typeName = type.GloballyQualifiedNonGeneric();
@@ -59,13 +53,13 @@ private void GenerateCode(SourceProductionContext context, Compilation compilati
{
typeName += $"<{new string(',', type.TypeParameters.Length - 1)}>";
}
-
+
sourceBuilder.WriteLine($"global::TUnit.Core.SourceRegistrar.RegisterAssembly(() => typeof({typeName}).Assembly);");
}
-
+
sourceBuilder.WriteLine("}");
sourceBuilder.WriteLine("}");
-
+
context.AddSource("AssemblyLoader.g.cs", sourceBuilder.ToString());
}
@@ -108,6 +102,7 @@ private static bool IsSystemAssembly(IAssemblySymbol assemblySymbol)
return publicKeyToken.SequenceEqual(new byte[] { 0xb7, 0x7a, 0x5c, 0x56, 0x19, 0x34, 0xe0, 0x89 }) // .NET Framework
|| publicKeyToken.SequenceEqual(new byte[] { 0x7c, 0xec, 0x85, 0xd7, 0xbe, 0xa7, 0x79, 0x8e }) // .NET Core
+ || publicKeyToken.SequenceEqual(new byte[] { 0xcc, 0x7b, 0x13, 0xff, 0xcd, 0x2d, 0xdd, 0x51 }) // System.Private
|| publicKeyToken.SequenceEqual(new byte[] { 0xb0, 0x3f, 0x5f, 0x7f, 0x11, 0xd5, 0x0a, 0x3a }); // mscorlib
}
diff --git a/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet2_0.verified.txt b/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet2_0.verified.txt
index 2fbc0fff73..f9e0121abc 100644
--- a/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet2_0.verified.txt
+++ b/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet2_0.verified.txt
@@ -1,10 +1,10 @@
[assembly: System.Runtime.Versioning.TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName=".NET Standard 2.0")]
+public static class AssemblyLoader_Guid
+{
+ public static void Initialize() { }
+}
namespace TUnit.Playwright
{
- public static class AssemblyLoader
- {
- public static void Initialize() { }
- }
public class BrowserTest : TUnit.Playwright.PlaywrightTest
{
public BrowserTest() { }
diff --git a/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet8_0.verified.txt b/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet8_0.verified.txt
index bd3cf63c5b..022bef3662 100644
--- a/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet8_0.verified.txt
+++ b/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet8_0.verified.txt
@@ -1,11 +1,11 @@
[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v8.0", FrameworkDisplayName=".NET 8.0")]
+public static class AssemblyLoader_Guid
+{
+ [System.Runtime.CompilerServices.ModuleInitializer]
+ public static void Initialize() { }
+}
namespace TUnit.Playwright
{
- public static class AssemblyLoader
- {
- [System.Runtime.CompilerServices.ModuleInitializer]
- public static void Initialize() { }
- }
public class BrowserTest : TUnit.Playwright.PlaywrightTest
{
public BrowserTest() { }
diff --git a/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet9_0.verified.txt b/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet9_0.verified.txt
index 12661f6562..1491edf0d6 100644
--- a/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet9_0.verified.txt
+++ b/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet9_0.verified.txt
@@ -1,11 +1,11 @@
[assembly: System.Runtime.Versioning.TargetFramework(".NETCoreApp,Version=v9.0", FrameworkDisplayName=".NET 9.0")]
+public static class AssemblyLoader_Guid
+{
+ [System.Runtime.CompilerServices.ModuleInitializer]
+ public static void Initialize() { }
+}
namespace TUnit.Playwright
{
- public static class AssemblyLoader
- {
- [System.Runtime.CompilerServices.ModuleInitializer]
- public static void Initialize() { }
- }
public class BrowserTest : TUnit.Playwright.PlaywrightTest
{
public BrowserTest() { }
diff --git a/TUnit.PublicAPI/Tests.cs b/TUnit.PublicAPI/Tests.cs
index a4166344e6..a3c5144830 100644
--- a/TUnit.PublicAPI/Tests.cs
+++ b/TUnit.PublicAPI/Tests.cs
@@ -46,6 +46,15 @@ private async Task VerifyPublicApi(Assembly assembly)
await Verify(publicApi)
.AddScrubber(sb => Scrub(sb))
.ScrubLinesWithReplace(x => x.Replace("\r\n", "\n"))
+ .ScrubLinesWithReplace(line =>
+ {
+ if (line.Contains("public static class AssemblyLoader"))
+ {
+ return "public static class AssemblyLoader_Guid";
+ }
+
+ return line;
+ })
.OnVerifyMismatch(async (pair, message, verify) =>
{
var received = await FilePolyfill.ReadAllTextAsync(pair.ReceivedPath);