Как я могу указать аргументы для NUnit-console.exe в командной строке dotcover - PullRequest
0 голосов
/ 02 апреля 2020

Я работаю с nunit и dotCover для покрытия кода, если мы запускаем nunit-console.exe, нам нужно предоставить такие аргументы, как:

& $nunit /nothread /noshadow /labels /domain=None /trace=Info /framework=net-4.0 /process=Separate

, где $ nunit - это путь к nunit-console.exe, но Я запускаю nunit-console.exe с командной строкой dotcover и предоставляю следующие аргументы

&$dotcover cover /TargetExecutable=$testRunner /TargetArguments=$test /Output="D:\JetBrains.dotCover.CommandLineTools.2019.3.4\TestReport\$testName.dcvr" 

, где testrunner - это nunit-console.exe, а $ test имеет путь к test.dll, но тесты не проходят, пока выполняются в Nunit.exe (приложение пользовательского интерфейса), они проходят.

есть ли способ передать необходимые аргументы nunit в сценарии dotcover? поэтому, когда dotcover покрывает nunit, он будет работать с указанными параметрами. Я попытался какой-то обходной путь, как это, но он не работает &$dotcover cover /TargetExecutable=$testRunner /TargetArguments=$test /nothread /noshadow /labels /domain=None /trace=Info /framework=net-4.0 /process=Separate /Output="D:\JetBrains.dotCover.CommandLineTools.2019.3.4\TestReport\$testName.dcvr"

, но он показывает эту ошибку:

[JetBrains dotCover] Not used command line parameter: 'nothread'
[JetBrains dotCover] Not used command line parameter: 'noshadow'
[JetBrains dotCover] Not used command line parameter: 'labels'
[JetBrains dotCover] Not used command line parameter: 'domain'

1 Ответ

0 голосов
/ 03 апреля 2020

Вам просто нужно процитировать аргументы для консоли NUnit.

&$dotcover cover /TargetExecutable=$testRunner /TargetArguments="$test /nothread /noshadow /labels /domain=None /trace=Info /framework=net-4.0 /process=Separate" /Output="D:\JetBrains.dotCover.CommandLineTools.2019.3.4\TestReport\$testName.dcvr"

Есть ли вероятность, что $ test может содержать сами кавычки или пробелы? В этом случае вам нужно заключить его в кавычки и убедиться, что вы избегаете кавычек внутри кавычек. Я думаю, зависит от того, какую именно командную строку вы используете, но вы, вероятно, захотите что-то вроде этого ...

&$dotcover cover /TargetExecutable=$testRunner /TargetArguments="\"$test\" /nothread /noshadow /labels /domain=None /trace=Info /framework=net-4.0 /process=Separate" /Output="D:\JetBrains.dotCover.CommandLineTools.2019.3.4\TestReport\$testName.dcvr"
...