>我有一个包含 10,000 多个测试的测试套件,有时只想使用dotnet vstest
CLI 重新运行在上次运行中失败的测试。
我最终使用以下PowerShell命令,根据.TestResults
中最新的trx
文件再次仅运行以前失败的测试:
dotnet vstest '.binDebugnetcoreapp3.0MyTests.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.', ''}
部分来删除命名空间前缀。