Сообщение Re: VS2019. Тупёж при запуске всех тестов (NUnit) от 17.03.2021 16:58
Изменено 17.03.2021 16:58 DDDX
Re: VS2019. Тупёж при запуске всех тестов (NUnit)
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Есть сборка с тестами (NUnit) в количестве 18.5 тыщ.
КД>Отдельные тесты запускаются достаточно бодро.
КД>А вот когда говоришь (в Test Explorer) "Run All" — студия сначалаоколо 8 восьми минут очень долго тупит (в testhost.exe), а потом начинает их выполнять.
Подключился отладчиком к testhost.exe. Символы подгрузились без проблем.
OnFilter.Pass
В коллекции Filters 18543 элемента. Это все мои тесты
Я так понимаю, каждый их 18543 тестов линейным поиском проверяется на наличие в списке из 18543 элементов.
Можно копнуть поглубже — посмотреть как работает f.Pass(test, negated)
Как раз здесь (ExpectedValue == input) сравнивается имя теста с элементом фильтра.
КД>Есть сборка с тестами (NUnit) в количестве 18.5 тыщ.
КД>Отдельные тесты запускаются достаточно бодро.
КД>А вот когда говоришь (в Test Explorer) "Run All" — студия сначала
Подключился отладчиком к testhost.exe. Символы подгрузились без проблем.
Стек | |
| |
OnFilter.Pass
public override bool Pass( ITest test, bool negated )
{
if (negated)
return Filters.All(f => f.Pass(test, negated));
return Filters.Any(f => f.Pass(test, negated));
}
В коллекции Filters 18543 элемента. Это все мои тесты
Автор: Коваленко Дмитрий
Дата: 17.03.21
.Дата: 17.03.21
Я так понимаю, каждый их 18543 тестов линейным поиском проверяется на наличие в списке из 18543 элементов.
Можно копнуть поглубже — посмотреть как работает f.Pass(test, negated)
Стек | |
| |
/// <summary>
/// Match the input provided by the derived class
/// </summary>
/// <param name="input">The value to be matched</param>
/// <returns>True for a match, false otherwise.</returns>
protected bool Match(string input)
{
if (IsRegex)
return input != null && new Regex(ExpectedValue).IsMatch(input);
else
return ExpectedValue == input; // <------------- здесь.
}
Как раз здесь (ExpectedValue == input) сравнивается имя теста с элементом фильтра.
Re: VS2019. Тупёж при запуске всех тестов (NUnit)
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Есть сборка с тестами (NUnit) в количестве 18.5 тыщ.
КД>Отдельные тесты запускаются достаточно бодро.
КД>А вот когда говоришь (в Test Explorer) "Run All" — студия сначалаоколо 8 восьми минут очень долго тупит (в testhost.exe), а потом начинает их выполнять.
Подключился отладчиком к testhost.exe. Символы подгрузились без проблем.
OnFilter.Pass
В коллекции Filters 18543 элемента. Это все мои тесты
Я так понимаю, каждый из 18543 тестов линейным поиском проверяется на наличие в списке из 18543 элементов.
Можно копнуть поглубже — посмотреть как работает f.Pass(test, negated)
Как раз здесь (ExpectedValue == input) сравнивается имя теста с элементом фильтра.
КД>Есть сборка с тестами (NUnit) в количестве 18.5 тыщ.
КД>Отдельные тесты запускаются достаточно бодро.
КД>А вот когда говоришь (в Test Explorer) "Run All" — студия сначала
Подключился отладчиком к testhost.exe. Символы подгрузились без проблем.
Стек | |
| |
OnFilter.Pass
public override bool Pass( ITest test, bool negated )
{
if (negated)
return Filters.All(f => f.Pass(test, negated));
return Filters.Any(f => f.Pass(test, negated));
}
В коллекции Filters 18543 элемента. Это все мои тесты
Автор: Коваленко Дмитрий
Дата: 17.03.21
.Дата: 17.03.21
Я так понимаю, каждый из 18543 тестов линейным поиском проверяется на наличие в списке из 18543 элементов.
Можно копнуть поглубже — посмотреть как работает f.Pass(test, negated)
Стек | |
| |
/// <summary>
/// Match the input provided by the derived class
/// </summary>
/// <param name="input">The value to be matched</param>
/// <returns>True for a match, false otherwise.</returns>
protected bool Match(string input)
{
if (IsRegex)
return input != null && new Regex(ExpectedValue).IsMatch(input);
else
return ExpectedValue == input; // <------------- здесь.
}
Как раз здесь (ExpectedValue == input) сравнивается имя теста с элементом фильтра.