如何在测试运行后指示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
}
你也可以附加一个简单的第三批命令:'MSTEST /testcontainer:C:\dev\UnitTests\bin\Debug\UnitTests.dll&&rd/S/Q “C:\ dev的\ TestResults”' – KMoraz 2012-01-10 23:21:34