ApprovalTests除非diff工具打开,否则DiffReporter不会弹出diff窗口

时间:2014-06-20 14:33:14

标签: c# unit-testing mstest beyondcompare approval-tests

我最近遇到了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,但在这种情况下使用它并没有什么区别。

2 个答案:

答案 0 :(得分:4)

这里的问题是单元测试的一些参与者将在完成后强制关闭(终止)单元测试启动的所有进程。如果以前打开过BeyondCompare工作的原因是没有通过单元测试启动进程。

我见过这种情况主要有两种方式 1)通过Resharper测试运行器的某些版本进行测试   解决这个问题的方法似乎只是转移到最新版本的resharper。或者,您可以通过VisualStudio test runner

运行测试

2)通过MsTest的某个版本的测试设置文件 .runsettings 进行测试运行 这里的工作似乎只是删除测试设置文件,虽然我相信实际的行是

KeepExecutorAliveAfterLegacyRun

更多信息:http://msdn.microsoft.com/en-us/library/jj635153.aspx

答案 1 :(得分:0)

如果您有.vsmdi和.testrunco​​nfig文件(来自Visual Studio 2008),您只需删除这两个文件即可解决问题。