approval-tests - 我如何在运行时自动批准批准测试?

标签 approval-tests

我正在使用 ApprovalTests.Net。我看到我可以指定各种报告。我想在运行单元测试时自动批准测试。我只需要临时执行此操作,或者在代码进行重大更改时执行此操作。这在使用 ApprovalResults.ForScenario 创建数据驱动的 ApprovalTests 时特别有用。

有没有办法做到这一点?

最佳答案

创建报告者而不是实现 IApprovalFailureReporter , 实现 IReporterWithApprovalPower . IReporterWithApprovalPower有一个额外的方法,ApprovedWhenReported您可以在那里完成批准测试的工作。
这是一个示例报告器,它将自动将接收到的文件复制到批准的文件中:

// Install-package ApprovalTests 
// Install-package ObjectApproval
public class AutoApprover : IReporterWithApprovalPower
{
    public static readonly AutoApprover INSTANCE = new AutoApprover();

    private string approved;
    private string received;

    public void Report(string approved, string received)
    {
        this.approved = approved;
        this.received = received;
        Trace.WriteLine(string.Format(@"Will auto-copy ""{0}"" to ""{1}""", received, approved));
    }

    public bool ApprovedWhenReported()
    {
        if (!File.Exists(this.received)) return false;
        File.Delete(this.approved);
        if (File.Exists(this.approved)) return false;
        File.Copy(this.received, this.approved);
        if (!File.Exists(this.approved)) return false;

        return true;
    }
}
然后,您可以按照指定任何批准者的方式在测试类或方法中使用它:
[UseReporter(typeof(AutoApprover))] 

关于approval-tests - 我如何在运行时自动批准批准测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37604285/

相关文章:

approval-tests - 在使用 ApprovalTests 时,有没有办法可以使用 .txt 以外的扩展名,例如 .log 或 .csv?

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

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

approval-tests - 文件相同时审批测试失败

visual-studio-2010 - 是什么导致消息 "Approvals is not set up to use your test framework."?

c# - 将 xml 与 ApprovalTests 进行比较时忽略属性的顺序