测试因 ShimNotSupportedException 而失败
Test fails with ShimNotSupportedException
我有一个使用垫片的非常简单的测试,但是当我 运行 测试时,我得到 "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
- 我已经完成了清理解决方案和重建
- 我已经通过测试菜单项和测试资源管理器执行了 "Run All Tests"
- 我 运行 只有一个测试失败了
- 我确实有一个警告说 "Some Fakes could not be generated" 在调查时(通过在 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 中删除的虚假程序集
我有一个使用垫片的非常简单的测试,但是当我 运行 测试时,我得到 "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
- 我已经完成了清理解决方案和重建
- 我已经通过测试菜单项和测试资源管理器执行了 "Run All Tests"
- 我 运行 只有一个测试失败了
- 我确实有一个警告说 "Some Fakes could not be generated" 在调查时(通过在 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 中删除的虚假程序集