我在不同版本的操作系统上使用 WpfApprovals 时遇到了问题。我的个人笔记本电脑运行的是 Windows 7 Enterprise,构建服务器运行的是 Windows 7 Professional。由于 WpfApprovals 在批准文件名中使用操作系统名称,因此构建服务器上的测试失败。
我尝试了许多选项来避免在批准名称中包含操作系统,但是,看起来这种行为在 WpfApprovals.cs 中是硬编码的......
public static void Verify(Control control)
{
ApprovalResults.UniqueForOs();
ApprovalTests.Approvals.Verify(new ImageWriter(f => WpfUtils.ScreenCapture(control, f)));
}
...没有创建注释掉 ApprovalResults.UniqueForOs() 调用的库的修改版本,有没有办法禁用在批准文件名中包含操作系统信息?
虽然我可以理解这些测试会因不同的主要操作系统版本而失败,但它们不应该在不同的版本中失败。我注意到标准字符串验证器不会强制使用 UniqueForOs 样式命名。