approval-tests - 控制 ApprovalTests 中 WpfApprovals 中的命名者

标签 approval-tests

我在不同版本的操作系统上使用 WpfApprovals 时遇到了问题。我的个人笔记本电脑运行的是 Windows 7 企业版,构建服务器运行的是 Windows 7 专业版。由于 WpfApprovals 在批准文件名中使用操作系统名称,因此测试在构建服务器上失败。

我尝试了多种选项来尝试避免在批准名称中包含操作系统,但是,看起来此行为是硬编码在 WpfApprovals.cs 中...

    public static void Verify(Control control)
    {
        ApprovalResults.UniqueForOs();
        ApprovalTests.Approvals.Verify(new ImageWriter(f => WpfUtils.ScreenCapture(control, f)));
    }

...缺少创建注释掉 ApprovalResults.UniqueForOs() 调用的库的修改版本,是否有办法禁止在批准文件名中包含操作系统信息?

虽然我知道这些测试会在不同的主要操作系统版本上失败,但它们不应该在不同的版本上失败。我注意到标准字符串验证器不会强制使用 UniqueForOs 样式命名。

最佳答案

好点。

这个 Wpf 有点棘手,因为一致性始终是一个问题,但强制它可能不是最好的主意,特别是没有办法覆盖默认行为。当我们找出下一个版本的正确解决方案时,这里有一些 3.0.5 的解决方法

1) 复制文件
您只需复制批准的文件即可匹配两个操作系统版本。这有点糟糕,但不涉及编码。

2) 自定义Wpf调用
虽然您说过不这样做,但这是一个非常简单的修复

public static void Verify(Control control)
{
    ApprovalTests.Approvals.Verify(new ImageWriter(f => WpfUtils.ScreenCapture(control, f)));
}

不幸的是,就是这样。无法拦截命名者。

感谢您提醒我们注意此事!

关于approval-tests - 控制 ApprovalTests 中 WpfApprovals 中的命名者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20060304/

相关文章:

jakarta-ee - 如何在需要应用服务器运行的遗留代码上有效地使用 ApprovalTests?

c# - 如何将批准测试的批准文件放在自己的文件夹中?

c# - 批准测试抛出 System.MissingMethodException

c# - 如何在 Approvaltests 中添加对 xunit 的 Theory 属性的支持

.net - 如何从构建日志中删除批准的调试信息

visual-studio - 如何解决此错误 : vstest.executionengine.x86.exe 已停止工作?

java - 如何使用 ApprovalTests 审批日志

java - com.spun.util.FormattedException : Didn't find cucumber. C:\Users\nsyed\Awris2\LearnDatabase 下的 api.testng.AbstractTestNGCucumberTests