我正在从命令行对我们的测试程序集运行MSTest:
mstest /testcontainer:C:\dev\UnitTests\bin\Debug\UnitTests.dll
这样可以正常工作,但我不希望保留此运行中的工件。似乎MSTest留下了副本。对我来说,他们在C:\dev\TestResults\
目录。
我调查了一些事情:
.testsettings
文件中的配置。在那里找不到任何东西。.testsettings
文件中指定的清理脚本。这可行,但是如何找到MSTest用于工件的输出位置?mstest.exe
时不起作用 - 无论如何它都无法正常工作,因为我想为我们团队中的其他开发人员编写脚本。如何在运行完成后删除测试运行工件?
编辑:另外,我会接受一个使用开源测试运行工具运行我们的MSTest测试的答案。我只想写这个,伙计。
答案 0 :(得分:1)
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
}