A context in which a Metalama unit test can run, configured with most required Metalama services and optionally some mocks.
Implements
Namespace: Metalama.Testing.UnitTesting
Assembly: Metalama.Testing.UnitTesting.dll
Syntax
public class TestContext : IDisposable, ITempFileManager, IApplicationInfoProvider, IDateTimeProvider, IBackstageService
Constructors
Name | Description |
---|---|
TestContext(TestContextOptions) | Initializes a new instance of the TestContext class. Tests typically do not call this constructor directly, but instead the CreateTestContext(IAdditionalServiceCollection, string?, string?) method. |
TestContext(TestContextOptions, IAdditionalServiceCollection?) | Initializes a new instance of the TestContext class and specify an optional IAdditionalServiceCollection. Tests typically do not call this constructor directly, but instead the CreateTestContext(IAdditionalServiceCollection, string?, string?) method. |
Properties
Name | Description |
---|---|
BaseDirectory | Gets the directory that was specifically created for the current test and where all specific files should be stored. |
CancellationToken | Gets a CancellationToken used to cancel the test in case of timeout. The timeout period is defined by the Timeout option. |
ServiceProvider | Gets the ProjectServiceProvider for the current context. |
TestName | Gets the test name, for diagnostics. |
Methods
Name | Description |
---|---|
CreateCompilation(Compilation) | Creates an ICompilation from a Compilation. |
CreateCompilation(IReadOnlyDictionary<string, string>, string?, bool, IEnumerable<MetadataReference>?, string?, bool) | Creates an ICompilation made of several source files. |
CreateCompilation(string, string?, bool, IEnumerable<MetadataReference>?, string?, bool) | Creates an ICompilation made of a single source file. |
Dispose() | |
Dispose(bool) | |
~TestContext() | |
WithExecutionContext(ICompilation, string?) | Switches the MetalamaExecutionContext to a test context for a given ICompilation. This allows compile-time unit tests to use facilities such as ExpressionFactory. |