.net core 如何仅使用dotnet vstest运行以前失败的测试

.net core 如何仅使用dotnet vstest运行以前失败的测试,.net-core,vstest,vstest.console.exe,.net Core,Vstest,Vstest.console.exe,我有一个超过10000个测试的测试套件,有时只想使用dotnet-vstestCLI重新运行上一次运行失败的测试。我最后使用下面的PowerShell命令,根据\TestResults\中最新的trx文件再次运行以前失败的测试: dotnet-vstest'.\bin\Debug\netcoreapp3.0\MyTests.dll'/Logger:trx/Tests:“$((选择Xml-Path(gci.\TestResults\')|排序LastWriteTime |选择-last 1)。全名

我有一个超过10000个测试的测试套件,有时只想使用
dotnet-vstest
CLI重新运行上一次运行失败的测试。

我最后使用下面的PowerShell命令,根据
\TestResults\
中最新的
trx
文件再次运行以前失败的测试:

dotnet-vstest'.\bin\Debug\netcoreapp3.0\MyTests.dll'/Logger:trx/Tests:“$((选择Xml-Path(gci.\TestResults\')|排序LastWriteTime |选择-last 1)。全名-XPath”//ns:UnitTestResult[@output='Failed']/@testName”-Namespace@{“ns”=”http://microsoft.com/schemas/VisualStudio/TeamTest/2010“}).Node.Value |%{$\-replace'^My\.Long\.和\.Teduous\.Namespace\.',''}}{$\-replace'^(.*?)(.*$','$1'}}连接字符串-分隔符',')”

请注意,最大命令行长度有一个字符限制,当许多测试以前失败时,很容易达到该限制。
使用
%{$-替换“^My\.Long”和“.tedous\.Namespace\”,“}
部分,如果可以的话,可以去掉名称空间前缀。

!!!您刚才为我节省了很多时间!!!用于
xUnit
NET5
命令看起来会略有不同,例如:…
dotnet test.\MyUnitTests\bin\Debug\NET5.0\MyUnitTests.dll--记录器“trx;LogFileName=MyUnitTests_01.xml”--结果目录。\TestResults--logger“console;verbosity=minimal”--过滤器(“DisplayName”+((选择xml-Path。\TestResults\MyUnitTests.xml-XPath)/ns:UnitTestResult[@output='Failed']/@testName”-命名空间@{“ns=”http://microsoft.com/schemas/VisualStudio/TeamTest/2010“}).Node.Value |%{${uu-replace'^MyUnitTests\.',''}}}{${uu-replace'^(.*?)(.*$,'$1'}}}连接字符串-分隔符'| DisplayName~')