Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>VS2022.
КД>Есть больше 100 тысяч тривиальных NUnit-тестов — просто куча методов с атрибутом [Test]
КД>Уже хочется их выполнять параллельно.
КД>Куда копать?
1. Если используете runsettings файл — то смотри <RunConfiguration><MaxCpuCount>
2. смотри атрибуты Parallelizable. Может у сборок выстален однопоток.
Здравствуйте, Nonmanual Worker, Вы писали: КД>>Есть больше 100 тысяч тривиальных NUnit-тестов — просто куча методов с атрибутом [Test] КД>>Уже хочется их выполнять параллельно. NW>1. Если используете runsettings файл — то смотри <RunConfiguration><MaxCpuCount>
Замутил такой test.runsettings:
<?xml version="1.0" encoding="utf-8" ?>
<RunSettings>
<!-- Configurations that affect the Test Framework -->
<RunConfiguration>
<MaxCpuCount>10</MaxCpuCount>
</RunConfiguration>
</RunSettings>
Подключил его к проекту.
В Test Explorer он вроде как выбран.
В IDE тесты параллельно не выполняются.
vstest.console.exe с "/Settings:.\..\..\test.runsettings" и /Parallel тоже работает в одно лицо.
С 2019 не пробовал...
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Здравствуйте, Nonmanual Worker, Вы писали:
КД>>>Есть больше 100 тысяч тривиальных NUnit-тестов — просто куча методов с атрибутом [Test]
Наверное, тут дают советы про параллельное выполнение тестов в разных классах, а Вы ожидаете параллельное выполнение тестов внутри одного класса? См. NUnit limitations
Здравствуйте, RonWilson, Вы писали:
RW>Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>>Здравствуйте, Nonmanual Worker, Вы писали:
КД>>>>Есть больше 100 тысяч тривиальных NUnit-тестов — просто куча методов с атрибутом [Test]
RW>Наверное, тут дают советы про параллельное выполнение тестов в разных классах, а Вы ожидаете параллельное выполнение тестов внутри одного класса? См. NUnit limitations
Я ожидаю нормальной эксплуатации своего 10-ядерного процессора
Проблема решилась(?) добавлением атрибута уровня сборки:
[assembly: Parallelizable(ParallelScope.All)]
TestHost.exe вроде начал больше одного ядра грузить.
Визуально в 10 раз не ускорилось, но, по крайней мере, теперь хотя бы есть направление
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Я ожидаю нормальной эксплуатации своего 10-ядерного процессора
дык, это и есть нормальная эксплуатация, ядер-то маловато
А если серьезно, то вот добиться параллельного выполнения методов внутри одного класса я не смог, там есть костыль для nunit, но заморачиваться не захотелось
Здравствуйте, RonWilson, Вы писали:
RW>А если серьезно, то вот добиться параллельного выполнения методов внутри одного класса я не смог, там есть костыль для nunit, но заморачиваться не захотелось
У меня под 30-тысяч классов с тестами, переживу как-нибудь
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Есть больше 100 тысяч тривиальных NUnit-тестов — просто куча методов с атрибутом [Test]
КД>Уже хочется их выполнять параллельно.
Погонял эту "параллельность" на большом наборе (49 тысяч с копейками) тестов.
2.5 часа оно ехало, Карл! ДВА С ПОЛОВИНОЙ ЧАСА! В vstest.console.exe.
По началу очень бодро, а потом все медленнее, медленнее, медленнее...
В одно лицо этот же набор проехал в консоле за 15 минут.
----
Где-то на краю сознания мелькнула мысль — "интересно, почему и на каком уровне затык происходит?", но не более
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[2]: NUnit, параллельное выполнение тестов. Фтопку
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>По началу очень бодро, а потом все медленнее, медленнее, медленнее... КД>В одно лицо этот же набор проехал в консоле за 15 минут.
А если использовать не студийный runner, а например консольный или тот, что от JB (только для последнего нужно что-то из их продуктов поставить — Rider или Resharper)?
Re[3]: NUnit, параллельное выполнение тестов. Фтопку
Здравствуйте, Михаил Романов, Вы писали:
КД>>По началу очень бодро, а потом все медленнее, медленнее, медленнее... КД>>В одно лицо этот же набор проехал в консоле за 15 минут.
МР>А если использовать не студийный runner, а например консольный или тот, что от JB (только для последнего нужно что-то из их продуктов поставить — Rider или Resharper)?
Я уже потерял интерес к этой проблеме и поехал дальше
Потом, может быть, вернусь к ней и попробую.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --