如何让Verify单元测试框架生成的received快照文件携带UTF-8 BOM标记?
Verify生成带BOM的UTF-8快照文件解决方案
Verify框架原生支持自定义文件编码,无需修改底层逻辑,可通过如下两种方式配置输出带BOM的UTF-8文件:
全局配置(所有测试统一生效)
在测试项目的全局初始化入口添加配置,一次性对所有测试用例生效:
// 可放在AssemblyInitialize标记的方法、全局SetUpFixture等测试初始化位置 VerifySettings.UseEncoding(new UTF8Encoding(encoderShouldEmitUTF8Identifier: true, throwOnInvalidBytes: true));
局部配置(仅指定测试生效)
如果只需要部分测试输出带BOM的快照,可在对应测试类的构造函数或单条用例执行前单独配置:
public class YourTestClass { public YourTestClass() { // 仅当前测试类的用例生效 VerifierSettings.UseEncoding(new UTF8Encoding(true, true)); } // 你的测试用例 [Test] public Task TestSnapshot() { return Verify(yourTestData); } }
生效验证
配置完成后重新运行测试,新生成的received和verified文件都会自动携带UTF-8 BOM头,KDiff3等对比工具会自动识别为UTF-8编码,无需每次手动指定编码格式。
该配置兼容你提到的11.27.0、13.0.3两个Verify版本,也适配.NET Framework 4.7.2运行环境。
内容的提问来源于stack exchange,提问作者Per Erik Stendahl
相关产品推荐
相关产品推荐

