当前位置: 首页 > 知识库问答 >
问题:

在azure管道yaml中运行cypress测试时找不到Package.json

长孙星汉
2023-03-14

我正在尝试使用YAML在Azure管道作业中运行cypress测试。当管道运行时,它到达运行cypress测试的行,并抛出以下错误:

npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path C:\myagent\_work\5\s\package.json
npm ERR! errno -4058
npm ERR! enoent ENOENT: no such file or directory, open 'C:\myagent\_work\5\s\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent 

下面是我的YAML文件:

trigger:
  - master

pool:
    name: Default

variables:
    buildConfiguration: 'Release'

steps:
  - task: NodeTool@0
    displayName: 'Use Node 12.x'
    inputs:
        versionSpec: 12.18.3
        checkLatest: false
  
  - task: Npm@1
    displayName: 'npm install'
    inputs:
        workingDir: WebApp
        verbose: false

  - task: Npm@1
    displayName: 'Build Angular'
    inputs:
        command: custom
        customCommand: run build -- --prod
        workingDir: WebApp
  
  - task: UseDotNet@2
    displayName: 'Use .NET Core SDK 3.1.300'
    inputs:
        packageType: sdk
        version: 3.1.300
  
  - task: DotNetCoreCLI@2
    displayName: 'dotnet restore'
    inputs:
        command: restore
        projects: AppApi/AppApi.csproj
        vstsFeed: '*************'

  - task: DotNetCoreCLI@2
    displayName: 'dotnet publish'
    inputs:
        command: publish
        arguments: '--no-restore --configuration $(buildConfiguration) --verbosity quiet --output $(build.artifactstagingdirectory)'
        publishWebProjects: true
        zipAfterPublish: true

  - script: 'npx cypress verify'
    displayName: 'cypress verify'
    failOnStderr: true

  - script: 'npm run cy:run --headless --spec cypress/integration/TestDemoExpanded.spec.ts --project ./WebApp' 
    displayName: 'run cypress tests'
    workingDirectory: $(Build.SourcesDirectory)/WebApp

我的package.json被签入我的Git存储库,并位于我的WebApp子文件夹中。我如何解决这个错误?

更新:我按照建议添加了workingDirectory参数,但现在出现了这个新错误:npm err!缺少脚本:Cypress

我解决了“缺少脚本”错误。YAML文件中的cypress run命令与Package.json中的cypress run命令不匹配。我更新了cypress运行步骤,现在测试在管道中运行。

共有1个答案

国阳
2023-03-14

该任务搜索根文件夹中的package.json而不是webapp中的package.json

只要加上:

workingDirectory: $(Build.SourcesDirectory)/WebApp

cypress步骤:

- script: 'npm run cypress run --headless --spec cypress/integration/TestDemoExpanded.spec.ts --project ./WebApp' 
  displayName: 'run cypress tests'
  workingDirectory: $(Build.SourcesDirectory)/WebApp
 类似资料:
  • 我正在AzureDevops CI/CD管道中为一个Java项目进行POC。我创建了一个Maven项目,该项目具有针对独立于我的项目的演示网站运行的Selenium测试(TestNG)。我想在构建管道中运行单元测试,在发布管道中运行UI Selenium测试。 任务似乎是我需要的构建块。我认为您可以区分单元测试 我能够在构建期间使用Maven任务和Surefire插件运行Selenium测试,但请

  • 我让Jenkins在docker内部运行aws ec2实例。我正在使用以下命令启动Jenkins: 以下是我的文件: 在Jenkins作业日志中,当我运行作业时,我得到。如果我删除了第一阶段的“Docker权限”,那么我将开始获得以下。 /var/jenkins_home/workspacetest@tmp /durable-12345/script.sh: 1: /var/jenkins_hom

  • 我有一个Selenium Python测试来检查一个网站是否有效工作。 当页面加载时,开始和结束日期将以这种格式显示,并且按钮将变灰,直到设置正确的日期格式(如屏幕截图所示) 我的硒代码:

  • 当我在Kotlin中的嵌套类中指定测试时,如下所示。。。 ...当使用gradle运行测试时,JUnit无法识别它。只有被找到并运行。 我使用的是JUnit 5.1、Kotlin 1.2.30和Gradle 4.6。

  • 我的项目是一个多模块分级项目,使用Scala。 测试类位于src/Test/scala/xxx/xxxx/xxx/xxxx/xxxxx/xxxxx下,每次尝试从IDE运行时,都会得到相同的错误: 测试类不是什么花哨的,简单的jUnit测试:

  • 问题内容: 在使用selenium(没有远程,没有xvfb)运行django测试时,我总是得到以下异常: 使用django 1.4和带有Firefox WebDriver的seleniumpython-bindings 2.28.0在LiveServerTestCase上运行测试。有人对如何解决有想法吗? 问题答案: 确保请求页面的浏览器正在等待响应。 如果我没记错的话,有和命令,请确保您正在使用