Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

92
Views
How can we read multiple test files from a directory and run one by one in cypress?

I want to integrate a function in a spec.ts file where it will read multiple xml data one by one from a directory and will repeat the tests as long as the directories length.

Is there any way to read multiple files or files name from a folder in Cypress or in JavaScript ?

almost 4 years ago · Santiago Trujillo
2 answers
Answer question

0

You can use fs to read the content of a directory, and then we can use Cypress Lodash to iterate through that returned array.

import fs from 'fs';

const files = fs.readdirSync('/my/dir/');

describe('My Tests', () => {
  Cypress._.times(files.length, (index) => {
    it(`does some test for the file: ${files[index]}, () => {
      cy.readFile(files[index]).should(...);
    });
  });
});

almost 4 years ago · Santiago Trujillo Report

0

You will need to read the file list in cypress.config.js (for Cypress version 10 and above).

const { defineConfig } = require('cypress')
const fs = require("fs");

module.exports = defineConfig({
  e2e: {
    setupNodeEvents(on, config) {

      const xmlFolder = `${__dirname}/xml-files/`;
      const files = fs.readdirSync(xmlFolder)
        .map(file => `${xmlFolder}/${file}`)     // add folder path

      config.xmlFiles = files                    // put in config for test
      return config
    }
  }
})

In the test,

describe('Creating one test for each XML file', () => {

  Cypress.config('xmlFiles')
    .forEach(fileName => {

      it(`Testing ${fileName}`, () => {

        cy.readFile(fileName)
          .then(xml => {
            ...
          })
      });
    });
})

For Cypress version 9 and below use plugins.index.js:

module.exports = (on, config) => {
  on('before:run', (spec) => {

    const xmlFolder = `${__dirname}/xml-files/`;
    const files = fs.readdirSync(xmlFolder)
      .map(file => `${xmlFolder}/${file}`)     // add folder path

    config.xmlFiles = files                    // put in config for test
  })
  return config 
}
almost 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!