在没有调试器的情况下运行测试时,Visual Studio单元测试失败

时间:2012-04-17 14:21:16

标签: c# .net unit-testing c#-4.0 reflection

我的单元测试在到达时失败:

var y = AppDomain.CurrentDomain
                 .GetAssemblies()
                 .Where(a => !a.GlobalAssemblyCache)
                 .SelectMany(a => a.GetExportedTypes()
                                   .Where(t => t.IsClass && typeof(ITypeRenderer).IsAssignableFrom(t)))
                 .ToArray();

但是当我附加调试器运行测试时,它不会失败。

我想它必须做一些反射权限和所有爵士乐,任何想法吗?

例外是:

  

初始化方法MyUnitTestProject.UnitTest.Init抛出异常。   System.NotSupportedException:System.NotSupportedException:The   动态程序集不支持调用的成员..

异常发生在:

System.Reflection.Emit.InternalAssemblyBuilder.GetExportedTypes()

感谢。

1 个答案:

答案 0 :(得分:3)

好吧,错误消息 说“动态程序集中不支持调用的成员”。显然,当您在调试器外部运行测试时,会导致在与运行测试的位置相同的AppDomain中创建动态程序集。

同样(希望)显然,检查IsDynamic以排除此类程序集(与排除GAC程序集的方式相同)应避免错误。