SourceGeneratorTestHelpers 8.1.0
dotnet add package SourceGeneratorTestHelpers --version 8.1.0
NuGet\Install-Package SourceGeneratorTestHelpers -Version 8.1.0
<PackageReference Include="SourceGeneratorTestHelpers" Version="8.1.0" />
paket add SourceGeneratorTestHelpers --version 8.1.0
#r "nuget: SourceGeneratorTestHelpers, 8.1.0"
// Install SourceGeneratorTestHelpers as a Cake Addin #addin nuget:?package=SourceGeneratorTestHelpers&version=8.1.0 // Install SourceGeneratorTestHelpers as a Cake Tool #tool nuget:?package=SourceGeneratorTestHelpers&version=8.1.0
Source Generator Test Helpers
Test helpers and extension methods to simplify testing of .NET source generators.
Testing a source generator
var result = SourceGenerator.Run<YourSourceGenerator>("your source");
Testing an incremental source generator
var result = IncrementalGenerator.Run<YourSourceGenerator>("your source");
Obtaining the generated source
Getting all generated sources
var generatedSources = result.GetSources();
A single source that ends with a specific file path
var generatedSource = result.GetSource("TestId.g.cs");
Compare the generated source with the expected source
You can produce a diff between the generated source and the expected source. The result will contain a boolean hasDifferences
and a line by line diff
in differences
.
var (hasDifferences, differences) = Diff.Compare(generatedSource, expectedSource);
Assert the difference
Using one of the testing framework packages below, you can also assert the difference between the generated source and the expected source.
var result = IncrementalGenerator.Run<YourSourceGenerator>("your source");
result.ShouldProduce("TestId.g.cs", "expected source");
Note: If you do not wish to assert on errors produced during diagnostics of the source generator run, you can simply disable them as such.
var result = IncrementalGenerator.Run<YourSourceGenerator>("your source");
result.ShouldProduce("TestId.g.cs", "expected source", false);
Verify the difference
Support for Verify is built-in using the VerifyAsync
method.
XUnit
public class SourceGeneratorTests
{
[Fact]
public Task ShouldProductTestId()
{
var result = IncrementalGenerator.Run<YourSourceGenerator>("your source");
return result.VerifyAsync("TestId.g.cs");
}
}
NUnit
[TestFixture]
public class SourceGeneratorTests
{
[Test]
public Task ShouldProductTestId()
{
var result = IncrementalGenerator.Run<YourSourceGenerator>("your source");
return result.VerifyAsync("TestId.g.cs");
}
}
MSTest
[TestClass]
public class SourceGeneratorTests :
GeneratorDriverTestBase
{
[TestMethod]
public Task ShouldProductTestId()
{
var result = IncrementalGenerator.Run<YourSourceGenerator>("your source");
return VerifyAsync("TestId.g.cs");
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Basic.Reference.Assemblies.NetStandard20 (>= 1.5.0)
- DiffPlex (>= 1.7.2)
- Microsoft.CodeAnalysis.CSharp (>= 4.3.1)
-
net6.0
- Basic.Reference.Assemblies.NetStandard20 (>= 1.5.0)
- DiffPlex (>= 1.7.2)
- Microsoft.CodeAnalysis.CSharp (>= 4.3.1)
-
net7.0
- Basic.Reference.Assemblies.NetStandard20 (>= 1.5.0)
- DiffPlex (>= 1.7.2)
- Microsoft.CodeAnalysis.CSharp (>= 4.3.1)
-
net8.0
- Basic.Reference.Assemblies.NetStandard20 (>= 1.5.0)
- DiffPlex (>= 1.7.2)
- Microsoft.CodeAnalysis.CSharp (>= 4.3.1)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on SourceGeneratorTestHelpers:
Package | Downloads |
---|---|
SourceGeneratorTestHelpers.XUnit
Test helpers and extension methods to simplify testing of .NET source generators. |
|
SourceGeneratorTestHelpers.MSTest
Test helpers and extension methods to simplify testing of .NET source generators. |
|
SourceGeneratorTestHelpers.NUnit
Test helpers and extension methods to simplify testing of .NET source generators. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
8.1.0 | 778 | 3/26/2024 |
8.0.14 | 219 | 3/26/2024 |
8.0.13 | 213 | 3/26/2024 |
8.0.12 | 235 | 3/25/2024 |
8.0.11 | 226 | 3/25/2024 |
8.0.10 | 229 | 3/25/2024 |
8.0.9 | 218 | 3/25/2024 |
8.0.8 | 263 | 3/18/2024 |
8.0.7 | 239 | 3/5/2024 |
8.0.6 | 285 | 2/23/2024 |
8.0.5 | 227 | 2/23/2024 |
8.0.4 | 129 | 2/23/2024 |
8.0.3 | 115 | 2/23/2024 |
8.0.2 | 116 | 2/22/2024 |
8.0.1 | 115 | 2/21/2024 |
8.0.0 | 122 | 2/21/2024 |