亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

具有特定 URL 的 azure devops 中的 Testcafe

具有特定 URL 的 azure devops 中的 Testcafe

拉丁的傳說 2022-10-21 09:28:02
我正在嘗試在我的 azure devops uisng IAAC(Infra as a code) 中對 java 腳本代碼進行 e2e-testcafe。所以我有不同的階段構建、測試和部署到不同的環境。部署到測試環境(存儲帳戶)后,我需要在該部署的代碼中進行 e2e。所以我對這些工作使用了以下步驟:我的 azure-pipeline.yml 有以下- job: e2e_tests  pool:    vmImage: 'Ubuntu 16.04'  steps:  - task: NodeTool@0    inputs:      # Replace '10.14' with the latest Node.js LTS version      versionSpec: '10.14'    displayName: 'Install Node.js'  - script: npm install    displayName: 'Install TestCafe'  - script: npm test    displayName: 'Run TestCafe Tests'  - task: PublishTestResults@2    inputs:      testResultsFiles: '**/report.xml'      testResultsFormat: 'JUnit'---------------------------------------------------my test.js: import { Selector } from 'testcafe';const articleHeader = Selector('#article-header');const header = Selector('h1');fixture `Getting Started`    .page `localhost:8080`          test('My first test', async t => {    await t        .expect(header.innerText).eql('Welcome to Your new App');});但是在這里它從我的 test.js 運行測試,它是應用程序的一部分,并且所有測試都在代理的本地服務器中運行,Azure devops 在這里為我使用它的 Windows 服務器。但現在我想將 URI 傳遞給 npm test,當它進入我的應用程序時,它再次獲取 localhost:8080 并在本地執行。那么有人可以幫助我在我通過的 url 中運行 e2e 測試,這確實是 storageaccount 的 url?就像我的命令應該在 azurepipelines.yamlnpm run test --URL在我的 test.js 中,它應該選擇我在管道中運行時傳入 Yaml 的 URL。
查看完整描述

2 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

您可以為 NPM 命令指定參數npm run <command> [-- <args>]。更多信息:向 npm 腳本發送命令行參數

對于TestCafe,您似乎通過元數據指定值


查看完整回答
反對 回復 2022-10-21
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

嗯,這是 TestCafe 的一個很常見的問題。一個簡單的答案是,沒有直接的方法,但有一些解決方法:

  1. 使用一些外部模塊,例如minimist,這已經在 stackoverflow 上解決。最重要的是,這樣的外部模塊允許您解析命令行參數,這正是您正在尋找的。

  2. 使用應該能夠在 Azure DevOps 中設置的環境變量。從 TestCafe 的角度來看,它在此處的文檔中進行了描述。我在各種環境中進行這項工作的方式是我編寫了一個像這樣的小輔助函數:

助手/baseUrl.js

import config from '../config';


const baseUrlOf = {

    "dev": config.baseUrlDev,

    "staging": config.baseUrlStaging,

    "prod": config.baseUrlProd

};


export function getBaseUrl () {

    return baseUrlOf[`${process.env.TESTCAFE_ENV}`];

}

這允許我在夾具和/或測試中使用該功能:


import { getBaseUrl } from '../Helpers/baseUrl';


fixture `Add User Child`    

    .page(getBaseUrl());   

而且我仍然只有以下具體網址config.json:


{

    "baseUrlDev": "...",

    "baseUrlStaging": "...",

    "baseUrlProd": "..."

}


查看完整回答
反對 回復 2022-10-21
  • 2 回答
  • 0 關注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號