最近參與了同事專案的討論,在專案文件庫中,發現年輕同事曾遇到MSTest整合進CI Server的問題,CI Server加裝的MSTest Plugin以Command Line(CLI)跑測試時,出現了"沒有要執行的測試"(No tests to execute.)訊息,先前自己也遇到,來筆記這個問題。
使用CLI(command line interface)執行的MSTest
MSTest.exe /testcontainer:paytest.dll
錯誤訊息本人生活照
明明有測試類別、有測試方法,就是不給測..
github有一篇MStest.exe via CLI does no work #1213訊息,訊息中有提到MSTest V2專案不支援CLI,因此必須降版使用V1;另外也從stackoverflow找到可以使用VSTest 取代MSTest的討論,解題也逛到yowko的blog(揮手),先筆記備份第一種解決,降成MSTest V1。
解決方式(單元測試專案降成MSTest V1)
1.管理測試專案的NuGet套件,解除以下兩個套件安裝
MSTest.TestAdapter及Mstest.TestFramework
2.依據Viusal Studio版本選擇UnitTestFramework路徑加入測試專案的參考,以下範例是Visual Studio 2017的預設安裝位置。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
重新編譯測試專案成功後,簽入程式碼,接著到CI Server建置執行,Mstest command line 測試就能正常執行,繼續持續整合之路。
2018.06 統一時代百貨台北店
參考:
MStest.exe via CLI does no work
MSTest does not discover unit test in assembly
Yowko's Notes使用命令列指令 (VSTest.Console.exe) 執行 MSTest V2 測試
巴西好險
2018.06.22 小組賽第二循環 巴西 vs 哥斯大黎加