執行功能測試工作

Azure Pipelines |Azure DevOps Server 2020 |Azure DevOps Server 2019 |TFS 2018-TFS 2015

注意

在 Microsoft Team Foundation Server (TFS) 2018 和舊版本中,組建和發行管線稱為定義執行稱為組建服務連接稱為服務端點階段稱為環境,以及作業稱為階段

這項工作已在 Azure Pipelines 和 TFS 2018 和更新版本中淘汰。 使用2.x 版或更高版本的Visual Studio 測試工作與作業,以在通用代理程式上執行單元和功能測試。

如需詳細資訊,請參閱 使用整合代理程式和作業進行測試

TFS 2017 及更早版本

您可以使用此工作,在一組使用測試代理程式的電腦上執行自動程式碼 UI 測試、Selenium 測試及功能測試。 當您想要在遠端電腦上執行測試,而且無法在組建電腦上執行測試時,請使用這項工作。

需求和必要條件

這項工作之前必須有Visual Studio 測試代理程式部署工作。

YAML 程式碼片段

# Run functional tests
# Deprecated: This task and it’s companion task (Visual Studio Test Agent Deployment) are deprecated. Use the 'Visual Studio Test' task instead. The VSTest task can run unit as well as functional tests. Run tests on one or more agents using the multi-agent job setting. Use the 'Visual Studio Test Platform' task to run tests without needing Visual Studio on the agent. VSTest task also brings new capabilities such as automatically rerunning failed tests.
- task: RunVisualStudioTestsusingTestAgent@1
  inputs:
    testMachineGroup: 
    dropLocation: 
    #testSelection: 'testAssembly' # Options: testAssembly, testPlan
    #testPlan: # Required when testSelection == TestPlan
    #testSuite: # Required when testSelection == TestPlan
    #testConfiguration: # Required when testSelection == TestPlan
    #sourcefilters: '**\*test*.dll' # Required when testSelection == TestAssembly
    #testFilterCriteria: # Optional
    #runSettingsFile: # Optional
    #overrideRunParams: # Optional
    #codeCoverageEnabled: false # Optional
    #customSlicingEnabled: false # Optional
    #testRunTitle: # Optional
    #platform: # Optional
    #configuration: # Optional
    #testConfigurations: # Optional
    #autMachineGroup: # Optional

引數

引數 描述
機器 以逗號分隔的電腦 Fqdn 或 IP 位址清單,可選擇性地包含埠號碼。 最大值為32電腦 (或32代理程式) 。 可為以下項目:
- Azure 資源群組的名稱。
-以逗號分隔的電腦名稱稱清單。 範例: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.34:5986
-先前工作的輸出變數。
測試放置位置 必要。 測試電腦上的位置 (s) Windows 機檔案複製Azure 檔案複製工作已複製測試二進位檔。 您可以使用測試代理程式電腦的系統階段變數來指定放置位置。 範例:c:\tests%systemdrive%\Tests
測試選取專案 必要。 測試是否要從測試元件或測試計劃中選取。
測試元件 測試選取範圍 設定為 [ 測試元件] 時,則為必要專案。 應從中執行測試的測試元件。 路徑是相對於來原始目錄。
-以分號分隔多個路徑。
-預設值為 **\*test*.dll
-如果是 JavaScript 測試,請輸入包含測試之 .js 檔案的路徑和名稱。
-可以使用萬用字元。 範例: **\commontests\*test*.dll; **\frontendtests\*test*.dll
測試篩選準則 測試選取範圍 設定為 [ 測試元件] 時,則為選擇性。 篩選準則,指定要在測試元件檔案內執行的測試。 的運作方式與vstest.console.exe的 /TestCaseFilter 選項相同 /TestCaseFilter。 範例: Priority = 1 |名稱 = MyTestMethod
測試計劃 測試選取專案設定為測試計劃時,如果未指定測試套件,則為必要項。 選取已為此組織設定的測試計劃。
測試套件 測試選取專案設定為測試計劃時,如果未指定測試計劃,則為必要項。 從選取的測試計劃中選取測試套件。
測試設定 測試選取專案 設定為 測試計劃時,則為選擇性。 從選取的測試計劃中選取測試設定。
執行設定檔案 選擇性。 .runsettings組建電腦上或檔案的路徑 .testsettings 。 可以是存放庫中的檔案路徑或磁片上的檔案。 使用 $(Build.SourcesDirectory) 指定專案根資料夾。
覆寫測試回合參數 選擇性。 字串,包含在檔案的區段中定義之參數的參數覆寫 TestRunParameters.runsettings 。 範例: Platform=$(platform);Port=8080
已啟用程式碼涵蓋範圍 設定時,此工作會在執行期間收集程式碼涵蓋範圍資訊,並將結果上傳至伺服器。 僅支援 .NET 和 c + + 專案。
依電腦數目散發測試 若有選取時,會根據電腦數目散發測試,而不是在元件層級散發測試,而不考慮將容器元件傳遞至工作。
測試回合標題 選擇性。 此測試回合的名稱,用來識別報表與其他測試回合的比較。
平台 選擇性。 要針對其報告測試回合的組建平臺。 僅用於報告。
-如果您使用組建 Visual Studio範本,則會自動定義,例如 x86
-如果您已在組建工作中定義平臺變數,請在這裡使用該變數。
Configuration 選擇性。 要針對其報告測試回合的組建設定。 僅用於報告。
-如果您使用組建 Visual Studio範本,則會自動定義,例如 Release
-如果您已在組建工作中定義要設定的變數,請在這裡使用該變數。
測試設定 選擇性。 字串,其中包含篩選準則 (s) 報告測試案例執行所在的設定。 僅用於搭配 Microsoft Test Manager 的報告。
-語法: {測試方法名稱 (s 的運算式) } {Microsoft Test Manager} 的設定識別碼
-範例: FullyQualifiedName~Chrome:12 若要報告所有在完整名稱中具有FullyQualifiedName~Chrome:12的測試方法,並將其對應至 MICROSOFT TEST MANAGER 中定義的設定識別碼12
-使用 DefaultTestConfiguration:{Id} 做為全部攔截。
受測試電腦上的應用程式 已部署受測應用程式 (&) 的電腦清單,或特定進程(例如 W3WP.exe)正在執行的電腦清單。 用來從這些電腦收集程式碼涵蓋範圍資料。 搭配使用此選項與 啟用程式碼涵蓋範圍 設定。 清單可以是以逗號分隔的電腦名稱稱清單,或是先前工作的輸出變數。
控制項選項 請參閱 控制項選項

工作最多可支援32部電腦/代理程式。

案例

一般案例包括:

  • 需要在測試電腦上進行額外安裝的測試,例如用於 Selenium 測試的不同瀏覽器
  • 自動程式化 UI 測試
  • 需要特定作業系統設定的測試
  • 使用多部測試電腦更快速地執行大量的單元測試

使用此工作可:

  • 針對內部部署標準環境執行自動化測試
  • 針對現有的 Azure 環境執行自動化測試
  • 針對新布建的 azure 環境執行自動化測試

您可以執行單元測試、整合測試、功能測試,事實上,您可以使用 Visual Studio 測試執行器 (vstest) 來執行的任何測試。

在電腦群組中使用多部電腦,可讓工作執行平行分散式測試。 平行處理原則是在測試元件層級,而不是個別測試層級。

以下為支援的案例:

  • TFS 內部部署和 Azure Pipelines

  • 組建代理程式

    • 託管內部部署代理程式
    • 組建代理程式必須能夠與所有測試電腦通訊。 如果測試電腦位於防火牆後方的內部部署,則無法使用裝載的組建代理程式。
    • 組建代理程式必須能夠存取網際網路,才能下載測試代理程式。 如果不是這種情況,則必須手動下載測試代理程式,並將其部署至組建代理程式可存取的網路位置,以及搭配測試代理程式位置參數的適當路徑使用的Visual Studio 測試代理程式部署工作。 此拓撲不支援自動檢查新的測試代理程式版本。
  • CI/CD 工作流程

    • 組建和發行管線都支援組建-部署-測試 (BDT) 工作。
  • 電腦群組設定

    • 在電腦群組中使用 BDT 工作時,僅支援 Windows 的機器。 不支援在具有 BDT 工作的電腦群組內使用 Linux、macOS 或其他平臺。
    • 不支援在任何測試電腦上安裝任何版本或版本的 Visual Studio。
    • 不支援在任何測試電腦上安裝較舊版本的測試代理程式。
  • 測試機器拓撲

    • 完全支援以 Azure 為基礎的測試機器,包括現有的測試電腦和新布建的電腦。
    • 支援已加入網域的測試電腦。
    • 已加入工作組的測試電腦必須啟用 HTTPS 驗證,並在建立電腦群組期間設定。
    • 測試代理程式電腦必須具有 Team Foundation Server 實例的網路存取權。 不支援在網路上隔離的測試電腦。
  • 使用錯誤狀況

    • 不支援跨不同的電腦群組執行測試,以及執行組建 (與這些電腦群組平行) 的 BDT 工作。
    • 不支援使用 BDT 工作取消進行中的組建或發行。 如果您這樣做,後續的組建可能無法如預期般運作。
    • 不支援取消透過 BDT 工作排入佇列的進行中測試回合。
    • 不支援設定測試代理程式,也不支援在非系統管理帳戶下或在服務帳戶下執行測試。

詳細資訊

開放原始碼

此工作是GitHub 上的開放原始碼。 歡迎您提供意見反應和投稿。

常見問題集

如何? 建立 Azure 資源群組進行測試?

請參閱 使用 Azure 入口網站來管理您的 azure 資源 ,並 Azure Resource Manager 建立資源群組和 VNET

哪裡可以取得執行設定檔案的詳細資訊?

請參閱 使用 .runsettings 檔案設定單元測試

哪裡可以取得有關覆寫回合設定檔案中設定的詳細資訊?

請參閱 提供測試的執行時間參數

如何自訂程式碼涵蓋範圍分析以及管理包含與排除專案

請參閱 自訂程式碼涵蓋範圍分析

是否需要代理程式?

您至少需要一個 代理程式 來執行您的組建或發行。

我遇到問題。 如何進行疑難排解?

請參閱 疑難排解組建和發行

我無法選取預設的代理程式組件區,也無法將組建或發行排在佇列中。 我要如何修正此問題?

請參閱 代理程式集區。

我的 NuGet 推送工作失敗,發生下列錯誤:「錯誤:無法取得本機簽發者憑證」。 我該怎麼辦?

您可以藉由新增受信任的根憑證來修正此問題。 您可以將 NODE_EXTRA_CA_CERTS=file 環境變數新增至組建代理程式,也可以 NODE.EXTRA.CA.CERTS=file 在管線中新增工作變數。 如需此變數的詳細資訊,請參閱 Node.js 檔 。 如需在管線中設定變數的指示,請參閱在 管線中設定變數

我使用 TFS 內部部署,而且沒有看到其中一些功能。 為什麼不用?

其中有些功能僅適用于Azure Pipelines ,但尚未在內部部署使用。 如果您已 升級至最新版本的 TFS,某些功能可在內部部署使用。

:::標記-結束

說明及支援