0

我正在尝试从 TeamCity 下的 nUnit 运行我的批准测试

    [assembly: FrontLoadedReporter(typeof(TeamCityReporter))]        

    [Test]
    [UseReporter(typeof(WinMergeReporter))]
    public void Test()
    {
    }

不幸的是,测试失败了,因为批准正在尝试从 C 驱动器中获取批准的文件。

测试失败。ApprovalTests.Core.Exceptions.ApprovalMissingException:审批失败:未找到审批文件“C:\...approved.txt”。

无论如何我可以为我的批准文件指定正确的位置吗?

4

1 回答 1

1

TeamCityReporter 似乎隐藏了这个问题的真正原因。

这是使用列出的解决方案进行本地运行和认证测试的结果。

System.Exception:无法检测到测试框架

任一:1) 优化器内联测试方法

解决方案:a) 添加 [MethodImpl(MethodImplOptions.NoInlining)] b) 将 Build->Opitmize Code 设置为 False & Build->Advanced->DebugInfo 设置为 Full

或 2) 未设置批准以使用您的测试框架。目前支持 [NUnit, MsTest, MbUnit, xUnit.net, xUnit.extensions, Machine.Specifications (MSpec)]

解决方案:要添加一个使用 ApprovalTests.Namers.StackTraceParsers.StackTraceParser.AddParser() 方法来添加 ApprovalTests.Namers.StackTraceParsers.IStackTraceParser 的实现,并支持您的测试框架。要了解如何实施,请参阅 http://blog.approvaltests.com/2012/01/creating-namers.html

很难捕捉到,因为通常本地运行在 Debug 下完成,而在 Release 下进行部署和测试。不过,我希望问题和答案对其他人有所帮助。

于 2015-04-16T15:40:40.457 回答