首页 > 编程问答 >如何通过管道使用 yaml 将 Azure 库变量传递给 Cypress?

如何通过管道使用 yaml 将 Azure 库变量传递给 Cypress?

时间:2024-05-31 11:27:05浏览次数:23  
标签:azure azure-devops azure-pipelines cypress azure-pipelines-yaml

我希望将 Azure 库中的变量传递给 cypress,这样我就可以拥有多个阶段(暂存&生产)

我尝试了以下方法:

通过一个名为 environment.json 的文件使用固定装置,该文件看起来像这样:

{
  WEB_APP_BASE_URL": "https://blight-town.com" // 像我这样的迷失者的"默认"URL
}

在 Azure 中,我有一个包含变量 "; WEB_APP_BASE_URL",其值为 "https://not-my-website.com"。

我的 yaml 文件看起来是这样的:

- task:Npm@1
  displayName:NPM run cy:run-smoke-tests
  输入:
    workingDir: 'webapp
    command:自定义
    customCommand:run cy:run-smoke-tests'//这只是为特定规格文件运行 cypress
  env:
    web_app_base_url:$(web_app_base_url)

我们本希望由此覆盖默认的基础 url,并使用库中的值,但遗憾的是,我们没有成功。各位有什么想法?


遇到的问题在于,Cypress 在 Azure Pipelines 的 Node.js 环境中运行,它无法直接访问 Azure 库中的变量。

为了解决这个问题,需要将 Azure 库变量传递到 Cypress 环境中。 以下是两种常用的方法:

1. 使用环境变量:

  • 在 Azure Pipelines 的 YAML 文件中,使用 echo 命令将 Azure 库变量设置为环境变量: ```yaml
    • script: | echo ##vso[task.setvariable variable=CYPRESS_BASE_URL]$(web_app_base_url) displayName: '设置 Cypress 环境变量' ```
  • 在 Cypress 测试代码中,可以通过 Cypress.env() 访问环境变量: javascript describe('我的测试', () => { it('访问正确的 URL', () => { cy.visit(Cypress.env('BASE_URL')); }); });

2. 使用 Cypress 配置文件:

  • 创建一个 Cypress 配置文件 (例如 cypress.env.json),并在其中定义一个占位符变量: json { "baseUrl": "YOUR_BASE_URL_HERE" }
  • 在 Azure Pipelines 的 YAML 文件中,使用 sedReplace 任务将 Azure 库变量替换到配置文件中: ```yaml
    • task: ReplaceTokens@5 inputs: rootDirectory: './' targetFilePatterns: 'cypress.env.json' tokenPrefix: '{' tokenSuffix: '}' actionOnMissing: 'warn' env: YOUR_BASE_URL_HERE: $(web_app_base_url) ```
  • 在 Cypress 测试代码中,baseUrl 将自动从配置文件中加载。

一些额外的建议:

  • 确保在 Cypress 命令(cy:run-smoke-tests)中没有覆盖 baseUrl。
  • 使用有意义的变量名称,例如 CYPRESS_BASE_URL,以清楚地区分 Cypress 环境变量和其他环境变量。
  • 可以使用类似的方法传递其他 Azure 库变量到 Cypress 环境中。

通过以上方法,就可以将 Azure 库变量传递给 Cypress,并在不同的环境中使用不同的配置运行测试。

标签:azure,azure-devops,azure-pipelines,cypress,azure-pipelines-yaml
From: 78544853

相关文章

  • Azure DevOps Server 2022.2(升级过程)
    1.概述2.前期准备3.升级过程4.验证成果1.概述本月微软公司发布了AzureDevOpsServer2022的第二个升级包Update2https://learn.microsoft.com/en-us/azure/devops/server/release-notes/azuredevops2022u2。自2024年3月12日发布AzureDevOpsServer2022Update1(《微软发......
  • Azure DevOps Wiki:如何在页面内进行链接?
    在我的DevOpsWiki中,我有一个页面,并希望创建一个包含文章链接的索引。我主要是找到了这本手册来实现这一目标:learn.microsoft.com...但是我没有成功。如何在Wiki页面内进行链接?您能举例说明吗?我想我必须在页眉处设置一个锚点,然后将索引项链接到该锚点。下面是一个示例:索......
  • 【Azure App Service】.NET应用读取静态文件时遇见了404错误的解决方法
    问题描述使用.NET8开发应用,部署到AzureAppService后,需要直接访问一些静态图片/视频文件,但是直接通过相对路径获取文件时,遇见404错误........ 问题解答在网上搜索“.NET应用读取静态文件”关键字,找到了问题原因。在IIS部署应用时代(.NETCore之前),是通过IIS服务来匹配文件......
  • 【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service
    在使用AppService服务部署业务应用,因为有些第三方的接口需要调用者携带TLS/SSL证书(X509Certificate),在官方文档中介绍了两种方式在代码中使用证书:1)直接使用证书文件路径加载证书2)从系统的证书库中通过指纹加载证书本文中,将分别通过代码来验证以上两种方式. 第一步:使用P......
  • 【Azure Stream Analystics】流分析服务执行遇见警告错误消息,导致上游数据堆积,下游无
    问题描述AzureStreamAnalystics服务运行状态正常,测试输出也正常。但是下游没有任何数据产生。只是在概述页面中提示:Message:Encounterederrortryingtodiscovernewreferencedatasnapshot.Error:ThejobhasencounterederrorfromReferenceDatastorage.Error......
  • 在 Azure AI Studio 中创建项目并使用聊天演练场
    在AzureAIStudio中创建项目并使用聊天演练场See:CreateaprojectandusethechatplaygroundinAzureAIStudio-AzureAIStudio|MicrosoftLearn在本动手实验中,你将创建项目,部署聊天模型,然后在AzureAIStudio中的演练场中使用它。本动手实验包括:在AzureA......
  • 【Azure Storage Account】使用Azure Policy来检查Storage Account中是否有开启匿名访
    问题描述因为StorageAccount中的Container可以开启匿名访问,因安全要求,需要检测出那些Container开启了匿名访问。所以使用AzurePolicy策略来进行检测。但是,想使用以上规则,保存报错。Thepolicydefinition'xxxxxxx'ruleisinvalid.Theresourcetype'storageAccounts/bl......
  • 【APIM】Azure APIM抛出 java.lang.RuntimeException 错误定位
    问题描述AzureAPIM服务日志中发现java.lang.RuntimeException错误,在进一步通过ApplicationInsights采集的错误信息日志,发现真实的请求错误为:‘Theremotenamecouldnotberesolved'xxxx.xxx.xx'"。 问题解答APIM服务,在没有配置自定义的DNS服务器时,默认会使用Azure平......
  • 【Azure Storage Account】Azure 存储服务计算Blob的数量和大小的Python代码
    问题描述介绍一段Python脚本,可以在微软云中国区使用。用于计算AzureStorageAccount中Container中Blob类型文件的数量和大小,脚本中允许按照容器,层(热/冷/归档),前缀,软删除/非软删除来计算数量和容量大小,默认使用的时间为以Blob的最后修改时间作为参考。执行结果参考: 参数......
  • Azure Service Principals ----- Azure 上最好保守的秘密的服务
    一,引言AzureServicePrincipals是AzureActiveDirectory(AAD)中的一种标识,代表应用程序,服务,自动化流程。ServicePrincipals支持各种Azure服务和资源之家的安全通信,为应用程序提供了一种进行身份验证并于AzureAPI交互的方法。在本文中,我们将探讨AzureServ......