У меня есть набор из более чем 10 000 тестов, и иногда я хочу перезапустить только те тесты, которые не удались при предыдущем запуске, используя dotnet vstest
CLI.
Как запускать только ранее неудачные тесты с помощью dotnet vstest
Ответы (1)
Я закончил тем, что использовал следующую команду PowerShell, чтобы снова запустить только ранее неудачные тесты на основе новейшего файла trx
в .\TestResults\
:
dotnet vstest '.\bin\Debug\netcoreapp3.0\MyTests.dll' /Logger:trx /Tests:"$((Select-Xml -Path (gci '.\TestResults\' | sort LastWriteTime | select -last 1).FullName -XPath "//ns:UnitTestResult[@outcome='Failed']/@testName" -Namespace @{"ns"="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"}).Node.Value | % {$_ -replace '^My\.Long\.And\.Tedious\.Namespace\.', ''} | % {$_ -replace '^(.*?)\(.*$','$1'} | Join-String -Separator ','))"
Помните, что существует ограничение на максимальное количество символов в командной строке, которое может быть легко достигнуто, если многие тесты ранее не прошли. Используйте часть % {$_ -replace '^My\.Long\.And\.Tedious\.Namespace\.', ''}
, чтобы избавиться от префиксов пространства имен, если можете.
NET5
для xUnit
будет выглядеть немного иначе, например: ...
- person Konstantin Konstantinov; 22.01.2021