2012-02-14 145 views
4

我试图单元测试一些我的课,并具有在那里运行测试单独运作时间的精细100%有问题,但如果我在批量运行它们/使用“所有测试解决方案”选项中我的文件每一个单一测试失败,出现错误:单元测试经过精磨,FileLoadException如果运行“在解决所有测试”

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, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null 

我一直在试图找出为什么长期时间和尝试在线搜索,但没有发现任何人有这个相同的问题。

这里是我的代码一个简单的例子:

RegistryService文件:

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"); 
    } 
} 

测试文件:

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, path); 
    Assert.AreEqual(expected, actual); 
} 

我简单化的代码,试图展示我在这里没有占用太多空间。我可以一个接一个没有问题地运行,但是在一起运行时会收到异常。

+0

我试图同时运行测试,他们通过。你有任何信息 – 2012-02-16 07:48:26

回答

1

我想通了通过卸载其他单元测试项目,然后运行试验,直到它的工作,显然是其中之一是使用一些旧的棱镜参考,并正在包括这些文件,而不是更新的人的,这个问题现在已经解决后,我删除并阅读了参考文献。

相关问题