#unit-testing #azure-devops #nunit #vstest #nunittestadapter
#модульное тестирование #azure-devops #nunit #vstest #nunittestadapter
Вопрос:
Мы настраиваем наше текущее решение на Azure devops.
У нас есть большая куча тестов (некоторые модульные тесты, некоторые тесты интеграции), все они выполняются с NUnit.
Мы настроили тест следующим образом:
- task: VSTest@2
timeoutInMinutes: 600
inputs:
testSelector: 'testAssemblies'
testAssemblyVer2: '.Test.dll'
searchFolder: '$(System.DefaultWorkingDirectory)/$(buildConfiguration)'
codeCoverageEnabled: false
platform: 'Any CPU'
configuration: '$(buildConfiguration)'
rerunFailedTests: false
pathtoCustomTestAdapters: 'Solution/packages/NUnit3TestAdapter.3.12.0/build/net35'
minimumExpectedTests: 1000
runInParallel: true
distributionBatchType: basedOnAssembly
failOnMinTestsNotRun: true
resultsFolder: 'testResults'
Это работает, но на это уходит много времени (я говорю о 5 часах), и я ищу способ ускорить процесс.
Одна странная вещь: даже при runInParallel: true
использовании, выполняется только один процесс (testhost), который потребляет около 3-6% процессора.
Что я должен сделать, чтобы повредить системный процессор / жесткий диск / … и повысить скорость тестирования?
Комментарии:
1. Вы запускаете эти тесты на собственном агенте?
2.
runInParallerl
переопределение MaxCpuCount что делаетtypically, a value of 0 indicates that up to all of the available free cores may be used.
3. Сколько тестовых сборок вы запускаете?
4. @KrzysztofMadej да, я забыл упомянуть об этом, это на собственном агенте.
5. @LeoLiu-MSFT У нас более 6000 модульных тестов, и даже я согласен с тем, что внутри одной конкретной сборки у нас могут быть некоторые случаи, для которых требуется одна и та же система ресурсов (и поэтому они не могут выполняться параллельно), большинство из них тестируют только один класс нашего кода ивы даже можете запустить 10 раз один и тот же экземпляр test. Я прочитал вашу статью, но не могу найти, что должно быть полезным в отношении того, почему она не выполняется параллельно?