-
-
Notifications
You must be signed in to change notification settings - Fork 53
/
Copy pathTestContext.cs
66 lines (47 loc) · 1.84 KB
/
TestContext.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
namespace TUnit.Core;
public partial class TestContext : Context, IDisposable
{
private readonly IServiceProvider _serviceProvider;
internal T GetService<T>() => (T) _serviceProvider.GetService(typeof(T))!;
internal readonly List<Artifact> Artifacts = [];
internal readonly List<CancellationToken> LinkedCancellationTokens = [];
internal readonly TestMetadata OriginalMetadata;
#if NET9_0_OR_GREATER
public readonly Lock Lock = new();
#else
public readonly object Lock = new();
#endif
internal bool ReportResult = true;
internal TestContext(IServiceProvider serviceProvider, TestDetails testDetails, TestMetadata originalMetadata)
{
_serviceProvider = serviceProvider;
OriginalMetadata = originalMetadata;
TestDetails = testDetails;
ObjectBag = originalMetadata.TestBuilderContext.ObjectBag;
Events = originalMetadata.TestBuilderContext.Events;
}
public TestContextEvents Events { get; }
public bool IsRegistered { get; internal set; }
public DateTimeOffset? TestStart { get; internal set; }
internal Task? TestTask { get; set; }
public TestDetails TestDetails { get; }
public int CurrentRetryAttempt { get; internal set; }
public List<ArgumentDisplayFormatter> ArgumentDisplayFormatters { get; } = [];
public List<Timing> Timings { get; } = [];
public Dictionary<string, object?> ObjectBag { get; }
public TestResult? Result { get; internal set; }
internal DiscoveredTest InternalDiscoveredTest { get; set; } = null!;
public void SuppressReportingResult()
{
ReportResult = false;
}
public void AddArtifact(Artifact artifact)
{
Artifacts.Add(artifact);
}
internal string? SkipReason { get; set; }
public void Dispose()
{
Events.Dispose();
}
}