0
votes

I'm trying to set up a pipeline on Azure DevOps with Cypress tests.

Locally test output file is created correctly.

I'm using npx cypress run command

I'm getting an error/warning for Publish Test Results:

##[warning]No test result files matching **/test-output-*.xml were found.

Here is my cypress.json file:

    {
    "reporter": "junit",
    "reporterOptions": {
      "mochaFile": "tests/test-output-[hash].xml",
      "toConsole": true,
      "attachments": true
    },
    "video": false,
    "pluginsFile": "cypress/plugins/index.js",
    "supportFile": "cypress/support/index.js"
   }

Here is azure-pipelines.yml:

# Node.js
# Build a general Node.js project with npm.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

trigger:
- develop

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '10.x'
  displayName: 'Install Node.js'

- script: |
    npm install
  displayName: 'npm install'

- script:
    npx cypress run
  displayName: 'Execute cypress tests'

- task: PublishTestResults@2
  displayName: "Publish Test Results"
  condition: always()
  inputs:
    testResultsFormat: 'JUnit'
    testResultsFiles: '**/test-output-*.xml'
    searchFolder: '$(System.DefaultWorkingDirectory)'

- task: PublishBuildArtifacts@1
  condition: always()
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'

I tried to do all weird stuff, but nothing helps. Checked all StackOverflow topics like those below:

Azure DevOps test -xml not found after running the Cypress tests

Is there any way to show Cypress Test Results in Azure DevOps Test Results Tab?

Azure DevOps test -xml not found after running the Cypress tests

No test result files were found using search pattern '...\**\TEST-*.xml

Cypress Integration with DevOps

All is looking to be set up correctly according to Cypress documentation and blogs etc.

Maybe test output file is not created on Azure?

Maybe someone has a clue?

EDIT: I checked using ls -al command, that tests folder is not created. But even if I created it using mkdir tests before starting cypress the folder is empty after the cypress job. So Cypress is not creating test output report. Why locally the file is created but on Azure no?

3

3 Answers

0
votes

Please check with the following steps:

  1. Set the pipeline variable system.debug to be true, and run the pipeline again.
  2. After the step "Execute cypress tests" is completed, check if you can get more details for troubleshooting from the debug logs on the console window.
  3. You mentioned that the same npx cypress run command can work fine on your local machine, please try to install a self-hosted agent on your local machine to run the pipeline to see if the problem still exists.

If the problem still exists, for us to investigate this problem further, please share the complete logs of the test step with us.

0
votes

Just had the same issue. Had my artifact download task set on a specific build, so I never get the new build with the correct cypress.config file. Updated the build target and now everything is working. So thanks @DuduA, I thought I'll just answer it so it's a bit easier to see if someone has the same issue.

0
votes

Please add a command line task to check if cypress run command is running at which folder. I think you might be running the cypress command in wrong folder. The issue will be resolved if you will provide the correct folder structure and run cypress run command where cypress.json file exists. Also in cypress.json file check the path of plugins file and support file.