.net6:运行测试时突然出现 OutOfMemory 异常

问题描述 投票:0回答:1

该项目有很多迁移(准确地说是 380 个)和 3360 个单元测试。突然,再创建一个迁移后,所有单元测试突然失败,抛出异常。

System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown.

具有以下堆栈跟踪:

RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture)
Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
Activator.CreateInstance(Type type, Object[] args)
<>c__DisplayClass0_0.<CreateTestClass>b__0() line 42
ReflectionAbstractionExtensions.CreateTestClass(ITest test, Type testClassType, Object[] constructorArguments, IMessageBus messageBus, ExecutionTimer timer, CancellationTokenSource cancellationTokenSource) line 42

这不仅发生在运行所有测试时,即使运行单个测试,它也总是会失败并出现相同的错误。当我删除新的迁移时,它起作用了。当我什至添加一个空的新迁移(其中 up() 和 down() 为空)时,它会抛出 OutOfMemory 错误。

当我右键单击测试并调用“调试”时,它运行时没有错误。所以我什至不知道如何调试问题。

有没有人遇到过这个问题?

c# entity-framework .net-6.0
1个回答
2
投票

OutOfMemoryException

发生此错误的原因是因为正在使用的计算机物理 RAM 内存不足,无法分配必要的 RAM 来完成任务。

我尝试解决这个问题的方法是关闭后台应用程序,通过任务管理器关闭它们。要打开,请在任务管理器中单击 Windows 键类型。单击内存列,这将按内存消耗从高到低排序。结束您不需要的程序的任务,例如 chrome 或互联网浏览器。

希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.