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

本文关键字:Visual Studio 单元测试 失败 运行测试 调试器 情况下 | 更新日期: 2023-09-27 18:31:28

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

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()

谢谢。

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

好吧,错误消息确实说"动态程序集不支持调用的成员"。显然,当您在调试器外部运行测试时,某些因素会导致在运行测试的同一 AppDomain 中创建动态程序集。

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