是否可抑制Fluent Assertions报错中「with configuration:」相关配置输出内容
关闭FluentAssertions配置说明输出方案
你遇到的这段固定输出来自测试断言库FluentAssertions,是对象相等性比对失败时默认打印的配置说明,可通过以下两种方式关闭:
方式1:全局生效(推荐)
在测试项目的全局初始化入口添加配置代码即可,适配所有单元测试框架:
- xUnit 可放在实现了
IAsyncLifetime的程序集级Fixture中 - NUnit 可放在标记了
[OneTimeSetUp]的全局类方法中 - MSTest 可放在标记了
[AssemblyInitialize]的静态方法中
配置代码如下(适用于FluentAssertions 6.0及以上版本):
AssertionOptions.ReportConfiguredDefaultsInAssertionFailures = false;
如果你的FluentAssertions版本低于6.0,需要先升级NuGet包到6.0以上版本,旧版本无原生关闭开关。
方式2:仅针对单个断言生效
如果不想全局关闭,只需要特定断言不输出配置说明,可以在BeEquivalentTo方法中追加配置:
// 原有比对逻辑追加WithoutReportingConfiguredDefaults配置即可 testObj.Should().BeEquivalentTo(expectedObj, options => options .WithoutReportingConfiguredDefaults() // 其余你已配置的比对规则保持不变 );
可选补充优化
如果还需要进一步压缩报错输出长度,可以额外调整以下全局配置:
- 限制对象序列化深度:
AssertionOptions.FormattingOptions.MaxDepth = 3(可根据需要调整数值) - 限制单条断言报错最大行数:
AssertionOptions.FormattingOptions.MaxLines = 20(可根据需要调整数值)
内容的提问来源于stack exchange,提问作者sixeyes
相关产品推荐
相关产品推荐

