ReferenceConfiguration¶
Configure metadata references for test compilations. Call once via [ModuleInitializer] to make your project's types available in test source code.
Setup¶
internal static class TestInit
{
[ModuleInitializer]
public static void Init() =>
ReferenceConfiguration.AddReferencesFromTypes(
typeof(AutoNotifyAttribute),
typeof(MyModel));
}
This ensures that when SymbolsFor(source), AnalyzeWith<T>(source), etc. compile the source string, they can resolve your attribute types and other dependencies.
Methods¶
| Method | Description |
|---|---|
AddReferencesFromTypes(params Type[] types) |
Add references from types' containing assemblies |
AddReferences(params Assembly[] assemblies) |
Add references from assemblies directly |
AddReferences(params MetadataReference[] references) |
Add pre-built metadata references |
AddReferencesFromPaths(params string[] assemblyPaths) |
Add references from file paths |
Clear() |
Remove all configured references |
When to Use¶
You need ReferenceConfiguration when your test source code references types from your own packages:
// This source references [AutoNotify] — needs the assembly reference
const string source = """
[AutoNotify]
public partial class Customer { }
""";
await AnalyzeWith<MustBePartialAnalyzer>(source)
.ShouldReportDiagnostic("RK1002");
Without configuration, the compilation would fail to resolve AutoNotifyAttribute.
What's Included by Default¶
RoslynTestBase automatically includes references to:
- .NET base class libraries (
System,System.Collections, etc.) Microsoft.CodeAnalysisassembliesDeepstaging.Roslyncore library
You only need to add references for your own assemblies.