SourceGeneratorTestHelpers.MSTest
10.1.0
See the version list below for details.
dotnet add package SourceGeneratorTestHelpers.MSTest --version 10.1.0
NuGet\Install-Package SourceGeneratorTestHelpers.MSTest -Version 10.1.0
<PackageReference Include="SourceGeneratorTestHelpers.MSTest" Version="10.1.0" />
<PackageVersion Include="SourceGeneratorTestHelpers.MSTest" Version="10.1.0" />
<PackageReference Include="SourceGeneratorTestHelpers.MSTest" />
paket add SourceGeneratorTestHelpers.MSTest --version 10.1.0
#r "nuget: SourceGeneratorTestHelpers.MSTest, 10.1.0"
#:package SourceGeneratorTestHelpers.MSTest@10.1.0
#addin nuget:?package=SourceGeneratorTestHelpers.MSTest&version=10.1.0
#tool nuget:?package=SourceGeneratorTestHelpers.MSTest&version=10.1.0
Source Generator Test Helpers
Test helpers and extension methods to simplify testing of .NET source generators.
Testing a source generator
var (generator, result) = SourceGenerator.Run<YourSourceGenerator>("your source");
You can also run a generator against multiple source files by passing any IEnumerable<string>.
var sources = new[]
{
"namespace Tests; public partial class First;",
"namespace Tests; public partial class Second;"
};
var (generator, result) = SourceGenerator.Run<YourSourceGenerator>(sources);
Testing an incremental source generator
var (generator, result) = IncrementalGenerator.Run<YourSourceGenerator>("your source");
The same multiple-source overload is available for incremental generators.
var sources = new[]
{
"namespace Tests; public partial class First;",
"namespace Tests; public partial class Second;"
};
var (generator, result) = IncrementalGenerator.Run<YourSourceGenerator>(sources);
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(result, "TestId.g.cs");
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.CodeAnalysis.CSharp (= 4.14.0)
- MSTest.TestFramework (>= 4.2.3)
- SourceGeneratorTestHelpers (>= 10.1.0)
- Verify.MSTest (>= 31.20.0)
-
net8.0
- Microsoft.CodeAnalysis.CSharp (= 4.14.0)
- MSTest.TestFramework (>= 4.2.3)
- SourceGeneratorTestHelpers (>= 10.1.0)
- Verify.MSTest (>= 31.20.0)
-
net9.0
- Microsoft.CodeAnalysis.CSharp (= 4.14.0)
- MSTest.TestFramework (>= 4.2.3)
- SourceGeneratorTestHelpers (>= 10.1.0)
- Verify.MSTest (>= 31.20.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.1.2 | 45 | 6/21/2026 |
| 10.1.0 | 58 | 6/20/2026 |
| 10.0.1 | 43 | 6/20/2026 |
| 10.0.0 | 209 | 11/15/2025 |
| 8.1.0 | 287 | 3/26/2024 |
| 8.0.14 | 232 | 3/26/2024 |
| 8.0.13 | 218 | 3/26/2024 |
| 8.0.12 | 236 | 3/25/2024 |
| 8.0.11 | 235 | 3/25/2024 |
| 8.0.10 | 251 | 3/25/2024 |
| 8.0.9 | 214 | 3/25/2024 |
| 8.0.8 | 239 | 3/18/2024 |
| 8.0.7 | 250 | 3/5/2024 |
| 8.0.6 | 237 | 2/23/2024 |
| 8.0.5 | 233 | 2/23/2024 |