gpt4 book ai didi

visual-studio-2010 - 是什么导致消息 "Approvals is not set up to use your test framework."?

转载 作者:行者123 更新时间:2023-12-04 23:05:01 25 4
gpt4 key购买 nike

是什么导致消息“审批未设置为使用您的测试框架。”?

我们有一个基于 ApprovalTests 的单元测试,它在夜间远程团队构建中失败,但有以下异常:

测试方法 Test_CanvasModeConverters 抛出异常:
System.Exception: Approvals 未设置为使用您的测试框架。
目前支持 [NUnit, MsTest, MbUnit, xUnit.net]
添加一个使用 ApprovalTests.StackTraceParsers.StackTraceParser.AddParser() 方法来添加 ApprovalTests.StackTraceParsers.IStackTraceParser 的实现并支持您的测试框架。
要了解如何实现,请参阅 http://blog.approvaltests.com/2012/01/creating-namers.html

此单元测试在本地 VS2010 单元测试运行(即 mstest)中顺利通过。
它在远程团队“ checkin ”构建中也能顺利通过(与每个代码 checkin 一起运行)。


我们在测试开始时记录了一些诊断信息,以识别正在运行的 ApprovalTests.dll 程序集...

--------------------
ApprovalTests, Version=1.21.4657.21485, Culture=neutral, PublicKeyToken=11bd7d124fc62e0f:
CodeBase = file:///E:/BldSrc/27/305/TestResults/NightlyBuild/Client[2]/Out/ApprovalTests.DLL
FullName = ApprovalTests, Version=1.21.4657.21485, Culture=neutral, PublicKeyToken=11bd7d124fc62e0f
GlobalAssemblyCache = False
ImageRuntimeVersion = v4.0.30319
Location = E:\BldSrc\27\305\TestResults\NightlyBuild\Client[2]\Out\ApprovalTests.dll
Company Name =
Assembly Product = ApprovalTests
--------------------

这是堆栈跟踪...
ApprovalTests.StackTraceParsers.StackTraceParser.Parse(StackTrace stackTrace)
ApprovalTests.Namers.UnitTestFrameworkNamer..ctor()
ApprovalTests.Approvals.<.cctor>b__11()
ApprovalTests.Approvals.GetDefaultNamer()
ApprovalTests.Approvals.Verify(IApprovalWriter writer)
ApprovalTests.Approvals.Verify(String text)
ApprovalTests.Combinations.CombinationApprovals.VerifyAllCombinations[A,B,C,D,E,F,G,H,I](Func`10 processCall, String format, Func`2 resultFormatter, IEnumerable`1 aList, IEnumerable`1 bList, IEnumerable`1 cList, IEnumerable`1 dList, IEnumerable`1 eList, IEnumerable`1 fList, IEnumerable`1 gList, IEnumerable`1 hList, IEnumerable`1 iList)
ApprovalTests.Combinations.CombinationApprovals.VerifyAllCombinations[A,B,C,D,E,F,G,H,I](Func`10 processCall, String format, IEnumerable`1 aList, IEnumerable`1 bList, IEnumerable`1 cList, IEnumerable`1 dList, IEnumerable`1 eList, IEnumerable`1 fList, IEnumerable`1 gList, IEnumerable`1 hList, IEnumerable`1 iList)
ApprovalTests.Combinations.CombinationApprovals.VerifyAllCombinations[A,B](Func`3 processCall, IEnumerable`1 aList, IEnumerable`1 bList)

最佳答案

正如格雷厄姆所说:

“批准测试通过遍历堆栈跟踪以获取测试方法名称来推断批准文件的名称。”

最有可能的是,我建议您的编译器可能会删除(内联)实际的测试方法。
您可以通过带有注释的方法来防止这种情况

[MethodImpl(MethodImplOptions.NoInlining)]

或者,我认为这是最好的选择,在编译器选项中完全关闭该功能(取消选中项目属性中的优化代码按钮)

关于visual-studio-2010 - 是什么导致消息 "Approvals is not set up to use your test framework."?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14545021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com