2

我最近遇到了 ApprovalTests 的问题,其中差异工具(在我的情况下是 BeyondCompare 3;我有一位同事使用 WinMerge 遇到了同样的问题)闪烁打开然后立即关闭。该工具保持打开状态的唯一方法是在运行测试之前打开该工具。

我正在使用 ApprovalTests 3.6;我知道这个问题在以前的版本中也存在。

调用验证的方法非常简单:

    [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。因此,我尝试制作BeyondCompareReporter调用 BComp.exe 而不是 BCompare.exe 的自定义实现,但在这种情况下使用它并没有什么不同。

4

2 回答 2

4

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

我已经看到这发生在 2 种主要方式
1) 测试通过某些版本的 Resharper 测试运行器运行。
解决这个问题的方法似乎只是转移到最新版本的 resharper。或者,您可以通过 VisualStudio 测试运行器运行测试

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

KeepExecutorAliveAfterLegacyRun

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

于 2014-06-21T09:03:00.900 回答
0

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

于 2015-07-06T11:33:04.437 回答