我正在使用ApprovalTests.Net.我看到我可以指定各种报告.我想在运行单元测试时自动批准测试.我只需要暂时执行此操作,或者在代码经历重大更改时执行此操作.在使用ApprovalResults.ForScenario创建数据驱动的ApprovalTests时,这尤其有用.
有没有办法做到这一点?
创建一个记者,而不是实现IApprovalFailureReporter,实施IReporterWithApprovalPower. IReporterWithApprovalPower有一个额外的方法,ApprovedWhenReported你可以做批准测试的工作.
这是一个示例记者,它会自动将收到的文件复制到批准的文件中:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以按照指定任何批准者的方式在测试类或方法中使用它:
[UseReporter(typeof(AutoApprover))]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
306 次 |
| 最近记录: |