OpenCover запускает тесты параллельно?Есть ли вариант, чтобы это не было? - PullRequest
3 голосов
/ 01 июля 2019

У меня проблемы с запуском OpenCover.console для некоторых сборок .NET.

Мы видим, что некоторые тесты MSTEST не выполняются, только при запуске под OpenCover.

То, что происходит, - это то, что у нас есть некоторые наши тесты, которые читают и записывают в базу данных LocalDB. Да, это правильнее называть интеграционными тестами, чем модульными, но они тестируют функциональность, которую нам нужно протестировать.

Тесты, о которых идет речь, начинаются с очистки таблиц, с которыми он работает, заполнения начальных данных, запуска некоторого кода, который должен вставить записи в базу данных, а затем чтения базы данных, чтобы убедиться, что записи существуют.

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

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

Итак, вопросы:

  • Работает ли OpenCover параллельно с тестами?
  • Есть ли способ настроить его не на?
  • Еще лучше - есть ли способ настроить его не для одних тестов, а для других? (Большинство наших тестов не обращаются к базе данных, и параллелизм для них не будет плохой вещью.)

Команда, которую мы используем:

<path>\OpenCover.Console.exe ^
    -target:"<path>\vstestconsole.exe" ^
    -targetargs:"/Logger.trx <listofassemblies>" ^
    -excludebyattribute:*.TestClass*;*.TestMethod*;*.ExcludeFromCoverage* ^
    -output:TestResults\outputCoverage.xml ^
    -filter:"<listoffilters" ^
...