我正在尝试对我的一些类进行单元测试并遇到一个问题,即单独运行测试可以100%正常运行,但是如果我批量运行它们/使用“所有测试解决方案”选项每一个测试一个我的文件失败并显示错误:
@H_404_5@
@H_404_5@
System.IO.FileLoadException was unhandled by user code Message=Could not load file or assembly 'Microsoft.Practices.Prism,Version=4.0.0.0,Culture=neutral,PublicKeyToken=null' or one of its dependencies. The located assembly's manifest deFinition does not match the assembly reference. (Exception from HRESULT: 0x80131040) Source=ServicesModuleTests FileName=Microsoft.Practices.Prism,PublicKeyToken=null@H_404_5@我一直试图弄清楚为什么很长一段时间,并尝试在线搜索,但没有发现任何人有同样的问题. @H_404_5@这是我的代码的一个简单示例: @H_404_5@RegistryService文件: @H_404_5@
public class RegistryService { protected ILoggerFacadeExtended _Logger { get; set; } protected IConnectivityService _Connectivity { get; set; } [ImportingConstructor] public RegistryService(ILoggerFacadeExtended logger,IConnectivityService connectivity) { this._Logger = logger; this._Connectivity = connectivity; } public string GetRegistryPath(RegistryHive hive,string path) { string registryPath = string.Format("{0}\\{1}",GetRegistryHiveString(hive),path.Trim('\\')); _Logger.DebugWithFormat("Found registry path: {0}",registryPath); return registryPath; } private string GetRegistryHiveString(RegistryHive hive) { switch (hive) { case RegistryHive.ClassesRoot: return "HKEY_CLASSES_ROOT"; case RegistryHive.CurrentConfig: return "HKEY_CURRENT_CONfig"; case RegistryHive.CurrentUser: return "HKEY_CURRENT_USER"; case RegistryHive.DynData: return "HKEY_DYN_DATA"; case RegistryHive.LocalMachine: return "HKEY_LOCAL_MACHINE"; case RegistryHive.PerformanceData: return "HKEY_PERFORMANCE_DATA"; case RegistryHive.Users: return "HKEY_USERS"; } throw new ArgumentOutOfRangeException("hive"); } }@H_404_5@测试文件: @H_404_5@
private RegistryService CreateMockedRegistryService() { return new RegistryService(MockRepository.GenerateMock<ILoggerFacadeExtended>(),MockRepository.GenerateMock<IConnectivityService>()); } [TestMethod()] public void GetRegistryPathTest_ClassesRoot() { RegistryService target = CreateMockedRegistryService(); RegistryHive hive = RegistryHive.ClassesRoot; string path = @"Something\SomethingElse\"; string expected = @"HKEY_CLASSES_ROOT\Something\SomethingElse"; string actual; actual = target.GetRegistryPath(hive,path); Assert.AreEqual(expected,actual); } [TestMethod()] public void GetRegistryPathTest_CurrentConfig() { RegistryService target = CreateMockedRegistryService(); RegistryHive hive = RegistryHive.CurrentConfig; string path = @"Something\SomethingElse\"; string expected = @"HKEY_CURRENT_CONfig\Something\SomethingElse"; string actual; actual = target.GetRegistryPath(hive,actual); }@H_404_5@我愚蠢的代码试图在不占用太多空间的情况下展示我正在做的事情.我可以一个接一个地运行这些,但是在一起运行时会收到异常.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。