Open sandboxFocus

Class TestContext

A context in which a Metalama unit test can run, configured with most required Metalama services and optionally some mocks.

Inheritance
TestContext
Implements
ITempFileManager
IApplicationInfoProvider
IDateTimeProvider
IBackstageService
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) 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) method.

TestContext(TestContextOptions, IAdditionalServiceCollection?, string?)

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.

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.

WithReferences(IEnumerable<PortableExecutableReference>)