在没有调试器的情况下运行测试时,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()
谢谢。
好吧,错误消息确实说"动态程序集不支持调用的成员"。显然,当您在调试器外部运行测试时,某些因素会导致在运行测试的同一 AppDomain 中创建动态程序集。
同样(希望如此)显而易见的是,检查IsDynamic
以排除此类程序集(与排除 GAC 程序集相同的方式)应该避免该错误。