簡體   English   中英

在與名稱模式匹配的項目中使用mstest運行所有單元測試

[英]Run all unit tests with mstest in projects matching a name pattern

我們正在使用我們的構建服務器執行的mstest運行我們的單元測試。

我們有一個約定,每個單元測試項目以“.Test”結束,每個集成測試項目以“.IntegrationTest”結束

是否可以指定mstest從符合我們約定的項目中運行所有測試?

現在,我們在一行中手動列出我們所有的測試項目,並且它變得非常乏味且不可維護:

“C:\\ Program Files(x86)\\ Microsoft Visual Studio 11.0 \\ Common7 \\ IDE \\ mstest”/testcontainer:D:\\workspace\\unittestjob\\solution\\project1.Test\\bin\\Release\\project1.Test.dll / testcontainer:D :\\ workspace \\ unittestjob \\ solution \\ project2.Test \\ bin \\ Release \\ project2.Test.dll /testcontainer:D:\\workspace\\unittestjob\\solution\\project3.Test\\bin\\Release\\project3.Test.dll / testcontainer:D :\\ workspace \\ unittestjob \\ solution \\ project4.Test \\ bin \\ Release \\ project4.Test.dll /testcontainer:D:\\workspace\\unittestjob\\solution\\project5.Test\\bin\\Release\\project5.Test.dll / testcontainer:D :\\ workspace \\ unittestjob \\ solution \\ project6.Test \\ bin \\ Release \\ project6.Test.dll /testcontainer:D:\\workspace\\unittestjob\\solution\\project7.Test\\bin\\Release\\project7.Test.dll / testcontainer:D :\\工作區\\ unittestjob \\解決方案\\ project8.Test \\ BIN \\發布\\ project8.Test.dll

它可以通過一些PowerShell魔術完成:

$temp = '/testsettings:D:\workspace\unittestjob\solution\local.testsettings /resultsfile:TestResult.trx ' ; #General stuff

Get-ChildItem D:\workspace\unittestjob\solution\ -Filter *.Test.dll -Recurse | ? {$_.fullname -notmatch 'obj'} | % { $temp =  $temp + "/testcontainer:" + $_.FullName+ " "};  #Get all dlls, but exclude the ones from 'obj'. Add /testcontainer to each

$temp  =  '"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\mstest" ' + $temp ; #Prepare the command of MSTest to be ran

iex "& $temp"; #Run MSTest

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM