2012-01-10 120 views
3

我在命令行中運行MSTest的對我們的測試組件:如何在測試運行後指示MSTest刪除所有測試工件?

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

這工作得很好,但我不想從這個運行的文物仍然存在。似乎MSTest留下了一份副本。對我來說,他們在C:\dev\TestResults\目錄中。

我已經調查了幾件事情:

  • 配置在.testsettings文件。在那裏找不到任何東西。
  • 運行清理腳本,在.testsettings文件中指定。這將工作,但我怎麼能找到MSTest用於工件的輸出位置?
  • 使用Visual Studio來限制工具>選項>測試工具>測試執行中舊測試結果的數量。這在使用mstest.exe時不起作用 - 並且無論如何都無法工作,因爲我想爲我們團隊中的其他開發人員編寫腳本。

如何在運行完成後刪除測試運行工件?

編輯:另外,我會接受一個答案,將使用開源測試運行工具運行我們的MSTest測試。我只是想編劇,男人。

回答

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 
} 
+1

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

相關問題