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

      Upwork Freelancers vs Dedicated React.js Teams: What’s Better for Your Project in 2025?

      August 1, 2025

      Is Agile dead in the age of AI?

      August 1, 2025

      Top 15 Enterprise Use Cases That Justify Hiring Node.js Developers in 2025

      July 31, 2025

      The Core Model: Start FROM The Answer, Not WITH The Solution

      July 31, 2025

      Finally, a sleek gaming laptop I can take to the office (without sacrificing power)

      August 1, 2025

      These jobs face the highest risk of AI takeover, according to Microsoft

      August 1, 2025

      Apple’s tariff costs and iPhone sales are soaring – how long until device prices are too?

      August 1, 2025

      5 ways to successfully integrate AI agents into your workplace

      August 1, 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

      Enhancing Laravel Queries with Reusable Scope Patterns

      August 1, 2025
      Recent

      Enhancing Laravel Queries with Reusable Scope Patterns

      August 1, 2025

      Everything We Know About Livewire 4

      August 1, 2025

      Everything We Know About Livewire 4

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

      YouTube wants to use AI to treat “teens as teens and adults as adults” — with the most age-appropriate experiences and protections

      August 1, 2025
      Recent

      YouTube wants to use AI to treat “teens as teens and adults as adults” — with the most age-appropriate experiences and protections

      August 1, 2025

      Sam Altman is afraid of OpenAI’s GPT-5 creation — “The Manhattan Project feels very fast, like there are no adults in the room”

      August 1, 2025

      9 new features that arrived on the Windows 11 Insider Program during the second half of July 2025

      August 1, 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

    Enhancing Laravel Queries with Reusable Scope Patterns

    August 1, 2025
    Development

    Everything We Know About Livewire 4

    August 1, 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

    Supercharging Workflows with AI Agent and Copilot Development🚀

    Web Development

    CVE-2025-23104 – Samsung Mobile Processor Exynos Use-After-Free Privilege Escalation Vulnerability

    Common Vulnerabilities and Exposures (CVEs)

    CVE-2025-38341 – Linux Kernel Eth fbnic Double Free Vulnerability

    Common Vulnerabilities and Exposures (CVEs)

    CISA Warns of Erlang/OTP SSH Server RCE Vulnerability Exploited in Attacks

    Security

    Highlights

    News & Updates

    Helldivers 2’s new Illuminate Galactic Emergency update has arrived with new enemy types, weapon customization, and a terrifying fleet headed right for Super Earth

    May 15, 2025

    The Illuminate invasion Helldivers 2 players have feared for months is here in the Galactic…

    CVE-2025-4456 – Project Worlds Car Rental Project SQL Injection Vulnerability

    May 9, 2025

    Microsoft pushes major firmware update for Surface Pro 11 and Laptop 7

    June 17, 2025

    Chain-of-Thought May Not Be a Window into AI’s Reasoning: Anthropic’s New Study Reveals Hidden Gaps

    May 20, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

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