我正在尝试从TeamCity下的nUnit运行我的审批测试
[assembly: FrontLoadedReporter(typeof(TeamCityReporter))]
[Test]
[UseReporter(typeof(WinMergeReporter))]
public void Test()
{
}
不幸的是,测试失败了,因为批准试图从C盘中获取批准的文件。
测试失败。 ApprovalTests.Core.Exceptions.ApprovalMissingException:批准失败:批准文件“C:\ ... approved.txt”未找到。
无论如何,我可以为我的批准文件指定正确的位置吗?
答案 0 :(得分:1)
TeamCityReporter似乎隐藏了这个问题的真正原因。
以下是使用所列解决方案进行本地运行和批准测试输出的结果。
System.Exception:无法检测测试框架
:1)优化器内联测试方法
解决方案:a)添加[MethodImpl(MethodImplOptions.NoInlining)] b)设置 Build-> Opitmize Code to False& Build-> Advanced-> DebugInfo to 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
抓住它很棘手,因为通常本地运行是在部署和Release下的Debug下在Debug下完成的。不过,我希望问题和答案对其他人有帮助。