XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension.NetCore.XUnit

【DLL】提供方便快捷的测试,无需编写Main方法,可直接添加特性在类或方法上进行测试

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFEExtension.NetCore.XUnit

重构命名空间与类型,提升结构清晰度

对 XFEExtension.NetCore.XUnit 项目进行大规模命名空间重构和类型重命名:断言、基准测试、执行、报告等类型分别迁移至专属命名空间,XfeRunner 重命名为 XFERunner 并同步更新引用,修正 XML 注释,调整兼容性辅助类实现,优化代码结构和职责划分。

dacf58b
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

18 个文件 +49 -29
Modified XFEExtension.NetCore.XUnit.Test/Program.cs +8 -4
@@ -8,6 +8,10 @@ using Microsoft.CodeAnalysis.Text;
8 8 using XFEExtension.NetCore.XUnit.Analyzer.CodeFix;
9 9 using XFEExtension.NetCore.XUnit.Analyzer.Diagnostics;
10 10 using XFEExtension.NetCore.XUnit.Analyzer.Generator;
11 using XFEExtension.NetCore.XUnit.Assertions;
12 using XFEExtension.NetCore.XUnit.Benchmarking;
13 using XFEExtension.NetCore.XUnit.Execution;
14 using XFEExtension.NetCore.XUnit.Runtime;
11 15
12 16 [assembly: XFEExtension.NetCore.XUnit.Attributes.UseExtension(typeof(XFEExtension.NetCore.XUnit.Test.TrackingActivator))]
13 17
@@ -158,15 +162,15 @@ internal sealed class WorkerProcessTests
158 162 [Test]
159 163 public async Task TerminatesHardTimeoutWorker()
160 164 {
161 var exitCode = await XfeRunner.RunAsync(["--tests", "--explicit", "--filter", nameof(HardTimeoutProbe), "--report", "none"]);
162 Assert.Equal(XfeRunner.TestFailureExitCode, exitCode);
165 var exitCode = await XFERunner.RunAsync(["--tests", "--explicit", "--filter", nameof(HardTimeoutProbe), "--report", "none"]);
166 Assert.Equal(XFERunner.TestFailureExitCode, exitCode);
163 167 }
164 168
165 169 [Test]
166 170 public async Task ReportsCrashedWorker()
167 171 {
168 var exitCode = await XfeRunner.RunAsync(["--tests", "--explicit", "--filter", nameof(WorkerCrashProbe), "--report", "none"]);
169 Assert.Equal(XfeRunner.WorkerCrashExitCode, exitCode);
172 var exitCode = await XFERunner.RunAsync(["--tests", "--explicit", "--filter", nameof(WorkerCrashProbe), "--report", "none"]);
173 Assert.Equal(XFERunner.WorkerCrashExitCode, exitCode);
170 174 }
171 175
172 176 [Test]
Modified XFEExtension.NetCore.XUnit/Assertions/Assert.cs +1 -1
@@ -1,7 +1,7 @@
1 1 using System.Collections;
2 2 using System.Diagnostics.CodeAnalysis;
3 3
4 namespace XFEExtension.NetCore.XUnit;
4 namespace XFEExtension.NetCore.XUnit.Assertions;
5 5
6 6 /// <summary>
7 7 /// 表示 XFE 强类型断言未满足时产生的测试失败。
Modified XFEExtension.NetCore.XUnit/Attributes/TestAttributes.cs +3 -3
@@ -37,7 +37,7 @@ public sealed class TestCaseAttribute(params object?[] arguments) : Attribute
37 37 }
38 38
39 39 /// <summary>
40 /// 从静态字段、属性、无参方法或 <see cref="XFEExtension.NetCore.XUnit.ITestCaseDataSource"/> 获取测试数据。
40 /// 从静态字段、属性、无参方法或 <see cref="Runtime.ITestCaseDataSource"/> 获取测试数据。
41 41 /// </summary>
42 42 /// <param name="memberName">提供数据的静态成员名称。</param>
43 43 [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
@@ -191,8 +191,8 @@ public sealed class IsolatedAttribute : Attribute;
191 191 /// 在测试程序集上注册运行时扩展实现。
192 192 /// </summary>
193 193 /// <param name="extensionType">
194 /// 实现 <see cref="XFEExtension.NetCore.XUnit.ITestReporter"/>、<see cref="XFEExtension.NetCore.XUnit.IBenchmarkExporter"/>
195 /// 或 <see cref="XFEExtension.NetCore.XUnit.ITestActivator"/> 的类型。
194 /// 实现 <see cref="Runtime.ITestReporter"/>、<see cref="Runtime.IBenchmarkExporter"/>
195 /// 或 <see cref="Runtime.ITestActivator"/> 的类型。
196 196 /// </param>
197 197 [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
198 198 public sealed class UseExtensionAttribute(Type extensionType) : Attribute
Modified XFEExtension.NetCore.XUnit/Benchmarking/BenchmarkClock.cs +1 -1
@@ -1,6 +1,6 @@
1 1 using System.Diagnostics;
2 2
3 namespace XFEExtension.NetCore.XUnit;
3 namespace XFEExtension.NetCore.XUnit.Benchmarking;
4 4
5 5 /// <summary>
6 6 /// 抽象基准引擎使用的单调高精度时钟,便于替换真实时钟和注入确定性测试时钟。
Modified XFEExtension.NetCore.XUnit/Benchmarking/BenchmarkEngine.cs +2 -1
@@ -1,6 +1,7 @@
1 1 using XFEExtension.NetCore.XUnit.Attributes;
2 using XFEExtension.NetCore.XUnit.Runtime;
2 3
3 namespace XFEExtension.NetCore.XUnit;
4 namespace XFEExtension.NetCore.XUnit.Benchmarking;
4 5
5 6 /// <summary>
6 7 /// 执行单个基准描述符的校准、预热、开销测量、实际采样和内存统计流程。
Modified XFEExtension.NetCore.XUnit/Benchmarking/BenchmarkStatisticsCalculator.cs +3 -1
@@ -1,4 +1,6 @@
1 namespace XFEExtension.NetCore.XUnit;
1 using XFEExtension.NetCore.XUnit.Runtime;
2
3 namespace XFEExtension.NetCore.XUnit.Benchmarking;
2 4
3 5 /// <summary>
4 6 /// 提供基准样本的异常值识别、描述统计、置信区间、预热稳定性和趋势计算。
Modified XFEExtension.NetCore.XUnit/Benchmarking/EnvironmentInspector.cs +2 -1
@@ -4,8 +4,9 @@ using System.Runtime;
4 4 using System.Runtime.InteropServices;
5 5 using System.Security.Cryptography;
6 6 using System.Text;
7 using XFEExtension.NetCore.XUnit.Runtime;
7 8
8 namespace XFEExtension.NetCore.XUnit;
9 namespace XFEExtension.NetCore.XUnit.Benchmarking;
9 10
10 11 internal static class EnvironmentInspector
11 12 {
Modified XFEExtension.NetCore.XUnit/Compatibility/XFECode.cs +8 -6
@@ -1,9 +1,11 @@
1 1 using System.Diagnostics;
2 using XFEExtension.NetCore.XUnit.Assertions;
3 using XFEExtension.NetCore.XUnit.Execution;
2 4
3 namespace XFEExtension.NetCore.XUnit;
5 namespace XFEExtension.NetCore.XUnit.Compatibility;
4 6
5 7 /// <summary>
6 /// 提供 3.x 源代码迁移所需的旧测试基类和辅助方法;新代码应直接使用 <see cref="XfeRunner"/>、
8 /// 提供 3.x 源代码迁移所需的旧测试基类和辅助方法;新代码应直接使用 <see cref="XFERunner"/>、
7 9 /// <see cref="Assert"/> 和 <see cref="Attributes.BenchmarkAttribute"/>。
8 10 /// </summary>
9 11 [Obsolete("Use XfeRunner, Assert and BenchmarkAttribute. XFECode will be removed in XUnit 5.0.")]
@@ -14,7 +16,7 @@ public abstract class XFECode
14 16 /// </summary>
15 17 /// <returns>表示整个运行完成的任务。</returns>
16 18 [Obsolete("Use generated XfeRunner.RunAsync entry points.")]
17 public static async Task RunTest() => Environment.ExitCode = await XfeRunner.RunAsync(Environment.GetCommandLineArgs().Skip(1).ToArray()).ConfigureAwait(false);
19 public static async Task RunTest() => Environment.ExitCode = await XFERunner.RunAsync(Environment.GetCommandLineArgs().Skip(1).ToArray()).ConfigureAwait(false);
18 20
19 21 /// <summary>
20 22 /// 对委托执行一次墙钟计时;该兼容方法不会校准、预热或统计采样,不能替代正式基准。
@@ -61,7 +63,7 @@ public abstract class XFECode
61 63 [Obsolete("Use Assert.True.")]
62 64 public static bool Assert(bool condition, string? message = null)
63 65 {
64 global::XFEExtension.NetCore.XUnit.Assert.True(condition, message);
66 global::XFEExtension.NetCore.XUnit.Assertions.Assert.True(condition, message);
65 67 return true;
66 68 }
67 69
@@ -75,7 +77,7 @@ public abstract class XFECode
75 77 [Obsolete("Use Assert.False.")]
76 78 public static bool AssertF(bool condition, string? message = null)
77 79 {
78 global::XFEExtension.NetCore.XUnit.Assert.False(condition, message);
80 global::XFEExtension.NetCore.XUnit.Assertions.Assert.False(condition, message);
79 81 return true;
80 82 }
81 83
@@ -91,7 +93,7 @@ public abstract class XFECode
91 93 [Obsolete("Use Assert.Equal.")]
92 94 public static bool AssertE<T>(T expected, T actual, string? message = null)
93 95 {
94 global::XFEExtension.NetCore.XUnit.Assert.Equal(expected, actual, message);
96 global::XFEExtension.NetCore.XUnit.Assertions.Assert.Equal(expected, actual, message);
95 97 return true;
96 98 }
97 99
Modified XFEExtension.NetCore.XUnit/Execution/AsyncLocalConsoleCapture.cs +1 -1
@@ -1,6 +1,6 @@
1 1 using System.Text;
2 2
3 namespace XFEExtension.NetCore.XUnit;
3 namespace XFEExtension.NetCore.XUnit.Execution;
4 4
5 5 internal sealed class AsyncLocalConsoleCapture : TextWriter
6 6 {
Modified XFEExtension.NetCore.XUnit/Execution/RegressionGate.cs +3 -1
@@ -1,4 +1,6 @@
1 namespace XFEExtension.NetCore.XUnit;
1 using XFEExtension.NetCore.XUnit.Runtime;
2
3 namespace XFEExtension.NetCore.XUnit.Execution;
2 4
3 5 internal static class RegressionGate
4 6 {
Modified XFEExtension.NetCore.XUnit/Execution/TestExecutor.cs +3 -1
@@ -1,7 +1,9 @@
1 1 using System.Diagnostics;
2 2 using System.Runtime.ExceptionServices;
3 using XFEExtension.NetCore.XUnit.Benchmarking;
4 using XFEExtension.NetCore.XUnit.Runtime;
3 5
4 namespace XFEExtension.NetCore.XUnit;
6 namespace XFEExtension.NetCore.XUnit.Execution;
5 7
6 8 internal sealed class TestExecutor
7 9 {
Modified XFEExtension.NetCore.XUnit/Execution/WorkerProcess.cs +3 -1
@@ -1,7 +1,9 @@
1 1 using System.Diagnostics;
2 2 using System.Reflection;
3 using XFEExtension.NetCore.XUnit.Reporting;
4 using XFEExtension.NetCore.XUnit.Runtime;
3 5
4 namespace XFEExtension.NetCore.XUnit;
6 namespace XFEExtension.NetCore.XUnit.Execution;
5 7
6 8 internal static class WorkerProcess
7 9 {
Modified XFEExtension.NetCore.XUnit/Execution/XfeRunner.cs +5 -2
Modified XFEExtension.NetCore.XUnit/Reporting/BuiltInReporters.cs +2 -1
Modified XFEExtension.NetCore.XUnit/Runtime/Contracts.cs +1 -1
Modified XFEExtension.NetCore.XUnit/Runtime/Descriptors.cs +1 -1
Modified XFEExtension.NetCore.XUnit/Runtime/Results.cs +1 -1
Modified XFEExtension.NetCore.XUnit/Runtime/Settings.cs +1 -1