如何在测试运行后指示MSTest删除所有测试工件?

问题描述:

我在命令行中运行MSTest的对我们的测试组件:如何在测试运行后指示MSTest删除所有测试工件?

mstest /testcontainer:C:\dev\UnitTests\bin\Debug\UnitTests.dll

这工作得很好,但我不想从这个运行的文物仍然存在。似乎MSTest留下了一份副本。对我来说,他们在C:\dev\TestResults\目录中。

我已经调查了几件事情:

  • 配置在.testsettings文件。在那里找不到任何东西。
  • 运行清理脚本,在.testsettings文件中指定。这将工作,但我怎么能找到MSTest用于工件的输出位置?
  • 使用Visual Studio来限制工具>选项>测试工具>测试执行中旧测试结果的数量。这在使用mstest.exe时不起作用 - 并且无论如何都无法工作,因为我想为我们团队中的其他开发人员编写脚本。

如何在运行完成后删除测试运行工件?

编辑:另外,我会接受一个答案,将使用开源测试运行工具运行我们的MSTest测试。我只是想编剧,男人。

MSTest在$ pwd中创建TestResults目录。

function global:runtests() 
{ 
    $mstest = Join-Path $env:VS100COMNTOOLS "..\IDE\mstest.exe" -Resolve 

    $resultsDir = Join-Path $pwd "TestResults" 

    $testDll = Join-Path $solutionScriptsContainer "..\UnitTests\bin\Debug\UnitTests.dll" -Resolve   
    $output = & $mstest /testcontainer:$testDll 
    $o = [regex]::match($output, "^.*(Summary.*)Results file.*$") 
    $mstflag = "MSTest:" 
    $op = $mstflag += $o.groups[1].value 

    Write-Host $op 
    Write-Host "Deleting $resultsDir" 

    remove-item $resultsDir -force -recurse 
} 
+1

你也可以附加一个简单的第三批命令:'MSTEST /testcontainer:C:\dev\UnitTests\bin\Debug\UnitTests.dll&&rd/S/Q “C:\ dev的\ TestResults”' – KMoraz 2012-01-10 23:21:34