Skip to content

[REQUEST] Support parallel testing #98

@mrleeio

Description

@mrleeio

Description

Splitting test files into multiple processes on continuous integration platforms has become common to reduce run time.

For example, on GitHub Actions, you might create a workflow which utilizes a matrix strategy. You can read a blog post on the subject here.

The compare mode for next_rails is too simplistic to account for this type of setup. Each process will create a different shitlist file which fails the diff comparison.

Possible Implementation

Create a new comparison mode that checks file content.

Committed file:

  "./spec/file_one.rb": [
    "DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is deprecated without replacement. ...",
    "DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is deprecated without replacement. ..."
  ],
  "./spec/file_two.rb": [
    "DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: ...",
    "DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: ..."
  ]

Matrix Job One:

  "./spec/file_one.rb": [
    "DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is deprecated without replacement. ...",
    "DEPRECATION WARNING: Using `return`, `break` or `throw` to exit a transaction block is deprecated without replacement. ..."
  ]

Matrix Job Two:

  "./spec/file_two.rb": [
    "DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: ...",
    "DEPRECATION WARNING: Rendering actions with '.' in the name is deprecated: ..."
  ]

Both Matrix jobs fail when comparing using a diff. However, it would pass if we searched for that content in the committed file.

Resources:

I will abide by the code of conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions