Как увеличить размер кучи для запуска тестов .NET Core 1.x/2.x в Visual Studio 2017?

Мои тесты полностью выполняются в командной строке (с использованием dotnet.exe test), но при их запуске в обозревателе тестов в Visual Studio 2017 некоторые тесты аварийно завершаются. Из-за заметок, которые я получил от предыдущих усилий по отладке, один конкретный тест дает сбой с исключением нехватки памяти (мне пришлось уменьшить объем теста, чтобы предотвратить его сбой).

Я тестирую .NET Framework 4.5.1, .NET Core 1.0 и .NET Core 2.0 (текущий сценарий относится к .NET Core 1.0).

Мне интересно, есть ли официальный способ увеличить размер кучи Test Explorer в Visual Studio 2017?

ПРИМЕЧАНИЕ. В идеале я хотел бы собрать команду или конфигурацию, которые будут автоматизированы, чтобы любой, кто клонирует мой репозиторий и запускает тесты в Visual Studio 2017+, имел увеличенный размер кучи.

Что я пробовал

Я обнаружил эта статья, в которой объясняется, как увеличить объем памяти, но она предназначена для увеличения размера разрабатываемого вами EXE-файла, а не для тестирования. Я следовал инструкциям, чтобы использовать утилиту editbin.exe, чтобы попытаться увеличить C:\Program Files\dotnet\dotnet.exe, но это, похоже, не дало никакого эффекта (тест по-прежнему падает).


person NightOwl888    schedule 29.08.2017    source источник
comment
Возможный дубликат размера кучи в C#/ .Net Framework — может ли он расти и как?   -  person    schedule 29.08.2017
comment
Ваш тест работает в 32- или 64-битной среде? test explorer может запускать его в 32-битной версии, что ограничивает вашу кучу.   -  person Martin Ullrich    schedule 29.08.2017
comment
@MartinUllrich - Хороший вопрос. Я тестировал под x86 в Visual Studio. Попробую x64.   -  person NightOwl888    schedule 29.08.2017
comment
@MartinUllrich - Это помогло. Пожалуйста, добавьте свой комментарий в качестве ответа, и я приму его. И, вероятно, следует отметить, что этот параметр находится в разделе «Тест» > «Настройки теста» > «Архитектура процессора по умолчанию» > X64, поскольку его трудно найти, если вы не знаете, где искать.   -  person NightOwl888    schedule 29.08.2017


Ответы (1)


Это может произойти, когда ваши тесты выполняются на 32-битном хосте, что ограничивает доступную память.

Интегрированный в VS обозреватель тестов может работать как в 32-битном, так и в 64-битном режиме, причем 32-битный обычно используется по умолчанию. Это можно легко изменить через меню Test > Test Settings > Default Processor Architecture меню:

введите здесь описание изображения

person Martin Ullrich    schedule 29.08.2017