2017-01-31 15 views
8

В настоящее время мы запускаем сеанс OpenCover, на котором запущен nunit3.console.exe.Улучшить скорость openCover

Нашей командная строка выглядит следующим образом:

"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -output:"%CD%\opencover.xml" -register:user -target:"C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" -targetargs:"Solution\our-solution-file.sln --config=Debug --result=%CD%\TestResult.xml;format=nunit2" 
exit 0 

Мы ожидали, что это будет медленнее, чем наше обычное модульным тестирование в связи с приборами между ними, но не так много.

Без покрытия кода в модулях тесты занимают примерно 1 час. И в настоящее время, с охватом кода, мы уже провели 3 дня и 23 часа, и мы думаем, что мы выполнили менее 10%.

Эти результаты должны быть экспортированы в SonarQube после.

Есть ли что-то, что мы можем сделать, чтобы улучшить скорость (за исключением обновления компьютера, на котором выполняется тест, который, вероятно, будет выполнен в любом случае)?

Как с менее подробными результатами, ...? В основном нас интересует охват кода, продолжительность и другие вещи для нас не очень интересны. Или даже использовать другой инструмент, чем OpenCover.

Я не знаю, если это имеет значение, но эта линия выполняется дженкинсом.

+0

Замедление 60x откровенная смешно. Но этот ответ SO предполагает, что это свойство OpenCover: http://stackoverflow.com/a/26225013/120163 Замечание об использовании потоков и очередей довольно удивительно; это очень медленные механизмы для использования, если они являются частью ядра среды выполнения. Я бы ожидал, что хороший инструмент для тестирования поможет добавить 15-20% дополнительных накладных расходов для выполнения. , У этого инструмента есть инструменты семантического дизайна (моей компании). (См. Биографию). –

ответ

2

Стараясь некоторые вещи, которые я сделал заметить огромный шаг вперед:

Я исключила тесты ассамблей openCover приборов, а теперь спектакли весьма хороши:

  • 1П06 только с UnitTests + SonarQube

  • 1h38 с OpenCover + UnitTests + SonarQube

Это вполне приемлемо для нас.

Кстати, как я сделал фильтр:

"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -filter:"[*]* -[*.Test]*" -output:"%CD%\opencover.xml" -register:user -target:"C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" -targetargs:"Solution\our-solution-file.sln --config=Debug --result=%CD%\TestResult.xml;format=nunit2" 
exit 0 
+0

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