【问题标题】:Test fails with ShimNotSupportedException测试失败并出现 ShimNotSupportedException
【发布时间】: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


【解决方案1】:

问题来自于引用 Microsoft.QualityTools.Testing.Fakes 的 11.0.0.0 版。

以下步骤为我解决了这个问题。

  1. 从项目中删除所有 *.fakes 引用
  2. 删除 Fakes 文件夹中的所有文件
  3. 重新添加 Microsoft.QualityTools.Testing.Fakes 版本 12.0.0.0
  4. 重新生成您在步骤 1 中删除的虚假程序集

【讨论】:

    猜你喜欢
    • 2012-08-14
    • 2014-12-02
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多