public Test(string testCode, IEnumerable <DiagnosticResult> expectedDiagnostics, IDictionary <string, ReportDiagnostic>?diagnosticOptions = null) { ExpectedDiagnostics.AddRange(expectedDiagnostics); TestCode = testCode; TestBehaviors = TestBehaviors.SkipGeneratedCodeCheck; diagnosticOptions ??= _systemAnalyzer.SupportedDiagnostics .Select(item => item.Id) .ToDictionary(item => item, _ => ReportDiagnostic.Error); SolutionTransforms.Add((solution, projectId) => { solution = solution.AddMetadataReference(projectId, MetadataReference.CreateFromFile(typeof(LazyAttribute).Assembly.Location)); var project = solution .GetProject(projectId); var compilationOptions = (CSharpCompilationOptions)project !.CompilationOptions !; compilationOptions = compilationOptions .WithGeneralDiagnosticOption(ReportDiagnostic.Error) .WithSpecificDiagnosticOptions(diagnosticOptions) .WithNullableContextOptions(NullableContextOptions.Enable); solution = solution.WithProjectCompilationOptions(projectId, compilationOptions); return(solution); }); }
public AnalyzerTest( string source, params DiagnosticResult[] expected) { TestCode = source; ExpectedDiagnostics.AddRange(expected); ReferenceAssemblies = ReferenceAssemblies.Net.Net50; TestState.AdditionalReferences.Add(typeof(EnumGenerationAttribute).Assembly); }
public AnalyzerTest( string source, IEnumerable <Assembly> additionalReferences, params DiagnosticResult[] expected) { TestCode = source; ExpectedDiagnostics.AddRange(expected); #if NET6_0 ReferenceAssemblies = new ReferenceAssemblies("net6.0", new PackageIdentity("Microsoft.NETCore.App.Ref", "6.0.0"), Path.Combine("ref", "net6.0")); #else ReferenceAssemblies = ReferenceAssemblies.Net.Net50; #endif foreach (var additionalReference in additionalReferences) { TestState.AdditionalReferences.Add(additionalReference); } this.DisableNullableReferenceWarnings(); }