Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      CodeSOD: Functionally, a Date

      September 16, 2025

      Creating Elastic And Bounce Effects With Expressive Animator

      September 16, 2025

      Microsoft shares Insiders preview of Visual Studio 2026

      September 16, 2025

      From Data To Decisions: UX Strategies For Real-Time Dashboards

      September 13, 2025

      DistroWatch Weekly, Issue 1139

      September 14, 2025

      Building personal apps with open source and AI

      September 12, 2025

      What Can We Actually Do With corner-shape?

      September 12, 2025

      Craft, Clarity, and Care: The Story and Work of Mengchu Yao

      September 12, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      Can I use React Server Components (RSCs) today?

      September 16, 2025
      Recent

      Can I use React Server Components (RSCs) today?

      September 16, 2025

      Perficient Named among Notable Providers in Forrester’s Q3 2025 Commerce Services Landscape

      September 16, 2025

      Sarah McDowell Helps Clients Build a Strong AI Foundation Through Salesforce

      September 16, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      I Ran Local LLMs on My Android Phone

      September 16, 2025
      Recent

      I Ran Local LLMs on My Android Phone

      September 16, 2025

      DistroWatch Weekly, Issue 1139

      September 14, 2025

      sudo vs sudo-rs: What You Need to Know About the Rust Takeover of Classic Sudo Command

      September 14, 2025
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»Development»Cypress Automation: Tag-Based Parallel Execution with Custom Configuration

    Cypress Automation: Tag-Based Parallel Execution with Custom Configuration

    July 31, 2025

    Custom Parallel Execution Using Tags:

    To enhance the performance of Cypress tests, running them in parallel is a proven approach. While Cypress offers a built-in parallel execution feature, a more flexible and powerful method is tag-based parallel execution using a custom configuration. This method allows to fine-tune which tests are executed concurrently, based on tags in. feature files.

     


    What Is Tag-Based Parallel Execution?

    Tag-based execution filters test scenarios using custom tags (e.g., @login, @checkout) defined in you. feature files. Instead of running all tests or manually selecting files, this method dynamically identifies and runs only the tagged scenarios. It’s particularly useful for CI/CD pipelines and large test suites.

    Key Components:

    This approach uses several cores Node.js modules: 

    • child process – To execute terminal commands. 
    • glob – To search. feature files based on patterns. 
    • fs – To read file content for tag matching. 
    • crypto – To generate unique hashes for port management. 

    Execution Strategy:

    1. Set Tags and Config via Environment Variables:

    You define which tests to run by setting environment variables:

    • TAGS='@db' → runs only tests with @db tag
    • <strong>THREADS=2 → number of parallel threads
    • SPEC='cypress/support/feature/*.feature' → file location pattern
      These variables help dynamically control test selection and concurrency.

    2. Collect All Matching Feature Files:

    Using the glob package, the script searches for all . feature files that match the provided pattern (e.g., *. feature). This gives a complete list of potential test files before filtering by tag.

    3. Filter Feature Files by Tag:

    Each . feature file is opened and scanned using fs.readFileSync(). If it contains the specified tag (like @db or @smoke), it gets added to the list for execution. This ensures only relevant tests run.

    4. Assign Unique Ports for Each File:

    To avoid port conflicts during parallel execution, the script uses crypto.createHash('md5') on the file path + tag combination. A slice of the hash becomes the unique port number. This is crucial when running UI-based tests in parallel.

    5. Run Cypress Tests in Parallel:

    The script spawns multiple Cypress instances using child_process.exec or spawn, one per tagged test file. Each command is built with its own spec file and unique port, and all are run simultaneously using Promises.

    6. Error Handling and Logging:

    If no files match the tag, the script logs a warning and exits cleanly. If any Cypress test fails, the corresponding error is caught, logged, and the overall process exits early to prevent false positives in CI pipelines.

    7. Trigger the Execution from Terminal:

    The full command is triggered from the terminal via a script in package.json:
    "cy:parallel-tag-exec": "cross-env TAGS='@db' THREADS=2 SPEC='cypress/support/feature/*.feature' ts-node parallel-tag-config.ts"

    8. Run the below command:

    npm run cy:parallel-tag-exec

    This executes the full workflow with just one command.


    Complete TypeScript Code

    The code handles the entire logic: matching tags, assigning ports, and running Cypress commands in parallel. Refer to the image below for the full implementation.

    P1

     

    P2

     


    Benefits of This Approach:

    • Greatly reduces overall test runtime.
    • Offers flexibility with test selection using tags.
    • Avoids port conflict issues through dynamic assignment.
    • Works well with CI pipelines and large-scale projects.

     

    Final Thoughts:

    This custom configuration allows you to harness the full power of parallel testing with Cypress in a tag-specific, efficient manner. It’s scalable, highly customizable, and especially suitable for complex projects where targeted test runs are required.

    For more information, you can refer to this website: https://testgrid.io/blog/cypress-parallel-testing/

     

    Similar Approach for Cypress Testing:

    1. Cypress Grep Plugin – https://github.com/cypress-io/cypress-grep
    2. Nx Dev Tools (Monorepo) – https://nx.dev/technologies/test-tools/cypress/api


     

    Source: Read More 

    Facebook Twitter Reddit Email Copy Link
    Previous ArticleWhy Real-Time Voice Translation Is a Game-Changer for Global Contact Centers
    Next Article See Your WordPress Scheduled Tasks (Cron Jobs)

    Related Posts

    Development

    Can I use React Server Components (RSCs) today?

    September 16, 2025
    Development

    Perficient Named among Notable Providers in Forrester’s Q3 2025 Commerce Services Landscape

    September 16, 2025
    Leave A Reply Cancel Reply

    For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

    Continue Reading

    Open Source MCP: Powering Scalable Test Automation

    Development

    CVE-2025-47916 – Invision Community Themeeditor Remote Code Execution

    Common Vulnerabilities and Exposures (CVEs)

    Rilasciato Sublime Text 4 versione 4200

    Linux

    Surface Pro 12-inch, aka the “Windows iPad,” just dropped to its best price ever — and so did its must-have keyboard

    News & Updates

    Highlights

    Google reveals new Kubernetes and GKE enhancements for AI innovation

    April 9, 2025

    Google unveils Google Kubernetes Engine updates with a big focus on AI. Source: Latest news 

    Key Factors to Consider Before Hiring React Native Developers for Your Project🔍

    April 22, 2025

    CVE-2025-53623 – ActiveJob Job Iteration API Remote Code Execution Vulnerability

    July 15, 2025
    Buying guides

    Buying guides

    April 10, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.