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

Los*_*nos 9 c# unit-testing approval-tests

我无法找到如何移动.approved.在Approval-tests中将文件发送到自己的文件夹.我猜信息就在某处 - 我找不到它.

https://github.com/approvals/ApprovalTests.Net

lle*_*lco 12

目前的方法是通过注释夹具或在装配级别进行注释

[ApprovalTests.Namers.UseApprovalSubdirectory("foldername")]
Run Code Online (Sandbox Code Playgroud)

如果您在3.2版之前,则可以创建一个自定义名称,如果您愿意,可以处理此问题.基础是:

覆盖框架的名称,并覆盖方法SourcePath

public string SourcePath
{
    get { return base.SourcePath + @"\yourSubfolder"; }
}
Run Code Online (Sandbox Code Playgroud)

然后,您需要将新的名称添加到堆栈中

StackTraceParser.AddParser(new MyNamer());
Run Code Online (Sandbox Code Playgroud)

虽然我会问为什么要将批准文件分离到测试的子目录中?我确信有一个很好的理由,但我发现让它们更接近我的实际测试更好.

  • 为了捍卫你为什么要这样做:如果你在同一个命名空间中有相当多的测试,目录中批准文件的数量可能会开始隐藏相对较少数量的测试类(使类导航变得更加困难) ) (3认同)

小智 6

从Git的代码看,看起来Llewellyn刚刚添加了以下属性......

[UseApprovalSubdirectory( "认证")]

..将批准文件放在名为"Approvals"的子文件夹中.这似乎适用于测试和班级.

当每个单元测试文件有许多批准文件时,这有助于保持这些批准的有序性.