我有一个使用垫片的非常简单的测试,但是运行测试时,我得到了“ ShimNotSupportedException”。我正在使用VS2013 Ultimate,但未调试。
[TestMethod]
public void GetDateTimeString_ReturnDTString_SetDateTime_CurrentYear()
{
using (ShimsContext.Create())
{
// Set 'UtcNow' to 1 March 2014
ShimDateTime.UtcNowGet = () => new DateTime(2014, 3, 1, 5, 30, 28);
var inputDate = new DateTime(2014, 06, 20, 18, 33, 50);
// Act
var actual = CustomTimeHelper.GetDateTimeString(inputDate);
// Assert
Assert.IsNotNull(actual);
}
}
我尝试了以下失败的尝试
以管理员身份运行VS
从引用中删除System.4.0.0.0.Fakes,从Fakes目录中删除System.fakes,并从FakeAssemblies中删除所有System.4.0.0.0.Fakes文件,然后从引用中右键单击“ Add-fakes Assembly”菜单重新创建伪造品
我没有使用测试设置文件
我已从选项菜单禁用了IntelliTrace
我做了一个干净的解决方案并重建
我已经通过“测试”菜单项和“测试资源管理器”执行了“运行所有测试”
我只运行了一个已损坏的测试
我确实有一个警告说,当进行调查时,“无法生成某些伪造”(通过在System.Fakes文件中设置Diagnostic =“ True”,System.DateTime似乎很好,因为它未在类列表中列出)不能从
我已经在其他计算机上尝试了Release和Debug
如果有人对可能发生的事情或如何解决问题有任何想法,将不胜感激。
最佳答案
该问题来自引用Microsoft.QualityTools.Testing.Fakes的11.0.0.0版本。
以下步骤为我解决了该问题。
从项目中删除所有* .fakes引用
删除Fakes文件夹中的所有文件
重新添加Microsoft.QualityTools.Testing.Fakes版本12.0.0.0
重新生成您在步骤1中删除的假程序集
关于c# - 测试失败,并显示ShimNotSupportedException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29253259/