我最近遇到了ApprovalTests的问题,其中差异工具(BeyondCompare 3,在我的情况下;我有一个使用WinMerge的同一问题的同事)闪烁然后立即关闭。工具保持打开的唯一方法是在运行测试之前打开工具。
我正在使用ApprovalTests 3.6;我知道这个问题也存在于以前的版本中。
调用Verify的方法非常简单:
[UseReporter(typeof(DiffReporter))]
protected void VerifyTables(IEnumerable<DataTable> tables, bool showSchema = false)
{
Approvals.VerifyAll(tables.Select(t => GetXmlForApproval(t, showSchema).ToString()), "");
}
就BeyondCompare而言 -
我在Visual Studio中使用TFS比较遇到了这个问题,这是因为TFS被设置为调用BCompare.exe而不是BComp.exe。所以,我尝试自定义实现调用BComp.exe而不是BCompare.exe的BeyondCompareReporter
,但在这种情况下使用它并没有什么区别。
答案 0 :(得分:4)
这里的问题是单元测试的一些参与者将在完成后强制关闭(终止)单元测试启动的所有进程。如果以前打开过BeyondCompare工作的原因是没有通过单元测试启动进程。
我见过这种情况主要有两种方式 1)通过Resharper测试运行器的某些版本进行测试 解决这个问题的方法似乎只是转移到最新版本的resharper。或者,您可以通过VisualStudio test runner
运行测试2)通过MsTest的某个版本的测试设置文件 .runsettings 进行测试运行 这里的工作似乎只是删除测试设置文件,虽然我相信实际的行是
KeepExecutorAliveAfterLegacyRun
答案 1 :(得分:0)
如果您有.vsmdi和.testrunconfig文件(来自Visual Studio 2008),您只需删除这两个文件即可解决问题。