c# - 如何增加堆大小以在 Visual Studio 2017 中运行 .NET Core 1.x/2.x 测试?

标签 c# visual-studio .net-core visual-studio-2017 test-explorer

我的测试一直在命令行上运行(使用 dotnet.exe test),但是在 Visual Studio 2017 的测试资源管理器中运行它们时,一些测试崩溃了。由于我在之前的调试工作中得到的笔记,一个特定的测试因内存不足异常而崩溃(我不得不缩小测试的范围以防止它崩溃)。

我正在 .NET Framework 4.5.1、.NET Core 1.0 和 .NET Core 2.0 上进行测试(当前场景是在 .NET Core 1.0 上)。

我想知道是否有官方方法可以增加 Visual Studio 2017 中测试资源管理器的堆大小?

NOTE: Ideally, I'd like to put together a command or configuration that is automated so that anyone who clones my repo and runs tests in Visual Studio 2017+ will have the increased heap size.

我尝试了什么

我发现了 this article这解释了如何增加内存,但它是为了增加您正在开发的 EXE 的大小,而不是为了测试。我按照说明使用 editbin.exe 实用程序尝试增加 C:\Program Files\dotnet\dotnet.exe,但这似乎没有任何效果(测试仍然崩溃)。

最佳答案

当您的测试在限制可用内存的 32 位主机中运行时,可能会发生这种情况。

VS 集成的测试资源管理器可以在 32 位和 64 位模式下运行,通常默认为 32 位。这可以通过菜单 Test > Test Settings > Default Processor Architecture 菜单轻松更改:

enter image description here

关于c# - 如何增加堆大小以在 Visual Studio 2017 中运行 .NET Core 1.x/2.x 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45944741/

相关文章:

c# - 在更改 ItemsSource 后,如何让 Silverlight ComboBox 调整下拉列表的大小?

控制台窗口中的 ASP.Net Core 应用程序输出?

c# - 使用ajax使用.net core MVC上传文件并作为模型传递

.net-core - 如何在VSTS(Vs2017)上运行和发布.NETCore Xunit测试?

c# - 如何创建一个接口(interface),在 C# 中保留一些内部方法进行测试?

c# - 如何停止尝试更改 entitykey 值的 dbentityentry.currentvalues.setvalues

c# - 使用foreach循环C#将数组的内容写入文本框

sql-server - Visual Studio 中的 SQL Server 数据库创建脚本

.net - VS解决方案,项目与DLL最佳实践

asp.net - 使用 .NET Core 2 在站点上使用 ftp 上传内容时应用服务重新启动