Есть сборка с тестами (NUnit) в количестве 18.5 тыщ.
Отдельные тесты запускаются достаточно бодро.
А вот когда говоришь (в Test Explorer) "Run All" — студия сначала около 8 восьми минут очень долго тупит (в testhost.exe), а потом начинает их выполнять.
C XUnit (если я правильно помню название) аналогичная фигня.
Это можно как-то починить/устранить?
Я так понимаю, студия сначала строит список тестов, а потом начинает их выполнять.
Непонятно, какого она не делает это параллельно?
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Непонятно, какого она не делает это параллельно?
Непонятно: какого она это делает как черепаха. Проблемы, имхо, у нее начинаются уже при 100+ тестах, при этом само исполнение тестов летает.
Как идеи:
(1) Тесты обычные или это тест на основе данных (Theory в xunit), и если с данными — откуда они берутся (аттрибуты vs внешний источник)? Нет ли собственных типов данных используемых как параметры в таких тестах? (Они требуют правильной сериализации, т.к. в итоге становятся ключом для исполнения. + там была какая-то особенность в mstest на эту тему, которая мешать жить, но вроде воркэраундилось)
(2) Студия вроде бы результаты тестов складывала в отдельную БД (где-то около проекта) — может пришло время ее почистить?
Re[2]: VS2019. Тупёж при запуске всех тестов (NUnit)
Здравствуйте, Mystic Artifact, Вы писали:
MA> (1) Тесты обычные или это тест на основе данных (Theory в xunit), и если с данными — откуда они берутся (аттрибуты vs внешний источник)? Нет ли собственных типов данных используемых как параметры в таких тестах? (Они требуют правильной сериализации, т.к. в итоге становятся ключом для исполнения. + там была какая-то особенность в mstest на эту тему, которая мешать жить, но вроде воркэраундилось)
У меня тесты тривиальные. Юзаю только атрибут [Test].
MA> (2) Студия вроде бы результаты тестов складывала в отдельную БД (где-то около проекта) — может пришло время ее почистить?
Хорошая мысль.
Обнаружил каталог v16\TestStore\OutputMessages
Сколько там подкаталогов/файлов — определить не получается
Раздел на HDD (даром что RAID10) — тормозит нещадно.
Тотал и WinExplorer до 150 тыщ файлов досчитали и я их прервал.
Попробую грохнуть этот каталог из командной строки
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[3]: VS2019. Тупёж при запуске всех тестов (NUnit)
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Тотал и WinExplorer до 150 тыщ файлов досчитали и я их прервал. КД>Попробую грохнуть этот каталог из командной строки
Можешь и %temp% заодно почистить, наверняка там горы мусора.
Re[4]: VS2019. Тупёж при запуске всех тестов (NUnit)
Здравствуйте, Mystic Artifact, Вы писали: КД>>Тотал и WinExplorer до 150 тыщ файлов досчитали и я их прервал. КД>>Попробую грохнуть этот каталог из командной строки MA> Можешь и %temp% заодно почистить, наверняка там горы мусора.
Тотал таки смог открыть этот каталог.
там 2.7 млн элементов (подкаталогов?)
Капец. Дайте мне яду.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[5]: VS2019. Тупёж при запуске всех тестов (NUnit)
Здравствуйте, RonWilson, Вы писали:
MA>> Можешь и %temp% заодно почистить, наверняка там горы мусора. RW>Вредное советуете — обычно там люди документы и дистрибы хранят
Я предлагаю только поразиться числу каталогов, файлов и логов которые писать никто не просил.
Re[6]: VS2019. Тупёж при запуске всех тестов (NUnit)
Здравствуйте, Mystic Artifact, Вы писали:
MA>Здравствуйте, RonWilson, Вы писали:
MA>>> Можешь и %temp% заодно почистить, наверняка там горы мусора. RW>>Вредное советуете — обычно там люди документы и дистрибы хранят MA> Я предлагаю только поразиться числу каталогов, файлов и логов которые писать никто не просил.
посмотрел в этот каталог, который находится в скрытом, а значит не для вас нечего там лазить
Re[7]: VS2019. Тупёж при запуске всех тестов (NUnit)
Здравствуйте, RonWilson, Вы писали:
RW>посмотрел в этот каталог, который находится в скрытом, а значит не для вас нечего там лазить
Ну правильно, есть штатный Disk Cleanup который подтирает еще и в других местах. Вполне юзабельно, если не забывать, что он вообще есть.
Re[8]: VS2019. Тупёж при запуске всех тестов (NUnit)
Здравствуйте, Mystic Artifact, Вы писали:
MA>Здравствуйте, RonWilson, Вы писали:
RW>>посмотрел в этот каталог, который находится в скрытом, а значит не для вас нечего там лазить MA> Ну правильно, есть штатный Disk Cleanup который подтирает еще и в других местах. Вполне юзабельно, если не забывать, что он вообще есть.
что-то сомневаюсь, что он трет эти каталоги, он трет хотя бы Windows Update бэкапы и то спасибо (не спасибо! на серверных ОС — как это там работает — это еще надо постараться — 99% за пару минут и ~1% — ночь и до обеда после серьезных куммулятивных обновлениях).
Re[5]: VS2019. Тупёж при запуске всех тестов (NUnit)
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Но эта зачистка никак не повлияла на время подготовки запуска "Run All" — 20 (ДВАДЦАТЬ, КАРЛ!) минут. Специально замерил. КД>Теперь надо как-то с этим жить.
Можно попробовать повыполнять тесты через родной NUnit раннер, посмотреть как быстро он делает хотя бы discovery, хотя я почему-то думаю, что там проблем нет (ну и общее выполнение оценить).
А так же, попробовать выполнить через "dotnet test" (mstest), который играет роль универсального ущербного интерфейса-адаптера над остальными тест-раннерами.
Ну, если упороться совсем — нагенерировать классов / тестов пустых, создать похожий проект, и поглядеть повторяется ли проблема на других машинах или у других пользователей.
А жить с этим просто — пользоваться их эксплорером ограниченно или не пользоваться вовсе. Например, пользоваться для запуска одного единственного теста (для дебага), если он с этим справляется. А остальное запускать "нормальным" раннером (если из них окажется работает быстрее).
PS: Где-то пол года назад, то, как он шевелится — мне перестало нравится буквально на 300-500 тестах, в добавок куча сборок с тестами, и абсолютно неудобный этот самый тест эксплорер. Т.к. половина из этих тестов мне не нужна была постоянно, сделал .slnf (solution filter), изъял оттуда лишние сборки с тестами, что б оно не маячило и не мешкалось.
Здравствуйте, Mystic Artifact, Вы писали:
КД>>Но эта зачистка никак не повлияла на время подготовки запуска "Run All" — 20 (ДВАДЦАТЬ, КАРЛ!) минут. Специально замерил. КД>>Теперь надо как-то с этим жить. MA> Можно попробовать повыполнять тесты через родной NUnit раннер, посмотреть как быстро он делает хотя бы discovery, хотя я почему-то думаю, что там проблем нет (ну и общее выполнение оценить).
Блин, у NUnit 2.x была отличная простенькая гуя для запуска тестов. Но они, походу, её похерили
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[8]: VS2019. Тупёж при запуске всех тестов (NUnit)
Здравствуйте, RonWilson, Вы писали:
RW>Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>>Блин, у NUnit 2.x была отличная простенькая гуя для запуска тестов. Но они, походу, её похерили
RW>я когда разобрался как теперь запускать из командной строки, то молча пошел пить кофе
ну не так все печально, но почему-то вызывает отвращение
dotnet test Microsoft.Word.csproj --filter JustLaunchThis
Здравствуйте, RonWilson, Вы писали: RW>Здравствуйте, Коваленко Дмитрий, Вы писали: КД>>Блин, у NUnit 2.x была отличная простенькая гуя для запуска тестов. Но они, походу, её похерили RW>я когда разобрался как теперь запускать из командной строки, то молча пошел пить кофе
— Скачал и установил nunit3-console.exe (3.12)
— Подключил к тестовому проекту NUnit.Console (3.12)
— Основной пакет NUnit — v3.13.1
— На всякий случай отключил NUnit3TestAdapter
Запускаю из командной строки и получаю ошибку:
ОШИБКА
Runtime Environment
OS Version: Microsoft Windows NT 6.2.9200.0
Runtime: .NET Framework CLR v4.0.30319.42000
Test Files
d:\Users\Dima\Work2\Projects\EFCore_LcpiOleDb_v2\tests\general\bin\vs2019-net50.0-Debug\Lcpi.EntityFrameworkCore.DataProvider.LcpiOleDb.Tests.General-net5_0_0.debug.dll
Errors, Failures and Warnings
1) Error :
NUnit.Engine.NUnitEngineException : The NUnit 3 driver encountered an error while executing reflected code.
----> System.InvalidCastException : Не удалось привести прозрачный прокси к типу "System.Web.UI.ICallbackEventHandler".
--NUnitEngineException
The NUnit 3 driver encountered an error while executing reflected code.
Server stack trace:
в NUnit.Engine.Drivers.NUnit3FrameworkDriver.CreateObject(String typeName, Object[] args)
в NUnit.Engine.Drivers.NUnit3FrameworkDriver.Load(String testAssemblyPath, IDictionary`2 settings)
в NUnit.Engine.Runners.DirectTestRunner.LoadDriver(IFrameworkDriver driver, String testFile, TestPackage subPackage)
в NUnit.Engine.Runners.DirectTestRunner.LoadPackage()
в NUnit.Engine.Runners.DirectTestRunner.EnsurePackageIsLoaded()
в NUnit.Engine.Runners.DirectTestRunner.RunTests(ITestEventListener listener, TestFilter filter)
в System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
в System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)
У меня проект под .NET5.
Проблема в .NET5 или я где косячу?
PS. День, фактически, фтопку
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[10]: VS2019. Тупёж при запуске всех тестов (NUnit)
Здравствуйте, IT, Вы писали:
КД>>Есть сборка с тестами (NUnit) в количестве 18.5 тыщ.
IT>Что-то рановато. В linq2db тормоза начинаются только после ~30k тестов.
Компутер, наверное, хавно
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[3]: VS2019. Тупёж при запуске всех тестов (NUnit)