【发布时间】:2015-05-28 23:33:49
【问题描述】:
我有一个使用 shim 的非常简单的测试,但是当我运行测试时,我得到一个“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 文件,然后通过右键单击“添加假程序程序集”重新创建假文件参考文献中的菜单
- 我没有使用测试设置文件
- 我已从选项菜单中禁用 IntelliTrace
- 我已完成清洁解决方案并重建
- 我已通过“测试”菜单项和“测试资源管理器”执行了“运行所有测试”
- 我只运行了一个损坏的测试
- 在调查时(通过在 System.Fakes 文件中设置 Diagnostic="True",System.DateTime 似乎没问题,因为它没有在无法从 生成的类列表
- 我已经尝试过发布和调试以及在其他计算机上
如果有人对可能发生的情况或如何解决问题有任何想法,我们将不胜感激。
【问题讨论】:
-
你看过this的帖子吗?
标签: c# unit-testing visual-studio-2013 microsoft-fakes