2017-08-07 30 views
0

方案如何使視覺工作室在線失敗構建時,Visual Studio的測試步驟並沒有發現任何測試

  • Visual Studio中建立在線的定義。
  • 使用Visual Studio測試 - 測試Assemblies步驟在特定的dll中運行測試。
  • 在這個DLL中的測試更像是構建步驟(高度定製的建設者),比測試。
  • 的測試步驟有「出錯時繼續」設置爲false,因爲我需要當建設者之一失敗,失敗。這是按預期工作的。當測試步驟失敗時,構建失敗。

由於測試運行者的變化,目前沒有發現測試,因爲dll中的測試框架與構建中使用的測試運行適配器不匹配。 (我知道如何解決這個問題,但這不是問題。)

問題是,這隻會在日誌中產生一條關於沒有發現測試的信息消息,並且警告說沒有發佈測試結果,使構建目前(表面上)成功。假想我想擺脫。

我需要做什麼才能使「未發現測試」失敗的構建?

我特地到VSTS的TestRunner配置有.runsettings文件(https://msdn.microsoft.com/en-us/library/jj635153.aspx),但沒有看到任何選項來獲得這種行爲?

回答

1

Visual Studio Test任務只是運行測試,並且如果任何測試失敗將會使構建失敗。如果由於缺少測試而導致構建失敗,Microsoft Premier Services創建的任務稱爲Build Quality Checks(在我寫這篇文章時這是免費的)。此任務允許您在構建版本運行時執行各種規則。如果您將最小代碼覆蓋率設置爲10%,那麼如果沒有找到測試,它將會使構建失敗。

此外,您可以直接自己的任務或腳本來實現相同的目標。

1

您可以添加Visual Studio的測試任務後Powershell的任務。在PowerShell任務中:

  • 通過Timeline REST API獲取以前的構建任務的詳細信息。
  • 然後通過名稱,如VsTest - testAssemblies搜索Visual Studio的測試任務。
  • 檢查是否爲message值的參數是no tests discovered(或No results found to publish等)問題的一部分。如果有這樣的值,請在PowerShell任務中添加命令exit 1以使構建失敗。

爲Visual Studio測試任務的輸出示例顯示如下消息No results found to publish

{ 
    "id": "29b3a87c-3c5b-473f-9ab5-85eff906250e", 
    "parentId": "299295b6-d397-492c-958e-094ec90630f8", 
    "type": "Task", 
    "name": "VsTest - testAssemblies", 
    "startTime": "2017-08-08T07:37:16.18Z", 
    "finishTime": "2017-08-08T07:37:23Z", 
    "currentOperation": null, 
    "percentComplete": null, 
    "state": "completed", 
    "result": "succeeded", 
    "resultCode": null, 
    "changeId": 13, 
    "lastModified": "0001-01-01T00:00:00", 
    "workerName": "name", 
    "order": 6, 
    "details": null, 
    "errorCount": 0, 
    "warningCount": 2, 
    "url": null, 
    "log": null, 
    "task": { 
    "id": "ef087383-ee5e-42c7-9a53-ab56c98420f9", 
    "name": "VSTest", 
    "version": "2.0.70" 
    }, 
    "issues": [ 
    { 
     "type": "warning", 
     "category": "General", 
     "message": "", 
     "data": { 
     "type": "warning", 
     "code": "002003" 
     } 
    }, 
    { 
     "type": "warning", 
     "category": "General", 
     "message": "No results found to publish.", 
     "data": { 
     "type": "warning" 
     } 
    } 
    ] 
} 
相關問題