badeball / cypress-cucumber-preprocessor

Run cucumber/gherkin-syntaxed specs with Cypress
MIT License
1.32k stars 149 forks source link

cypress doesn't wait for preprocessor to compile the`.feature` file #1247

Open mysticdevx opened 1 month ago

mysticdevx commented 1 month ago

Current behavior

When cypress has the watchForFileChanges: false config setting that disables cypress run after each test file modification, then cypress doesn't wait for .feature file to be compiled. That results us to run the feature file twice if the file is new, and worst is, it doesn't reflect the latest change in the existing test code unless we run it twice. (i.e. for an existing test, I change, say an assertion, and when i run the test, it uses the previously compiled .feature file bc cypress doesnt wait for the new compilation, and uses the existing one)

Example SS

Screenshot 2024-10-06 at 14 54 34

Desired behavior

It would be nice, if tests start after preprocessor compiles the feature file, so that we can use the watchForFileChanges: false that makes test development easier. (otherwise cypress keeps running during development after each change)

Some workarounds are listed here, however neither of them works. Therefore i needed to open an issue.

Thanks.

Test code to reproduce

You can use this repo.

Versions

Checklist

badeball commented 1 month ago

Hi @mysticdevx, you need to clearly outline the steps needed to exemplify the undesired behavior. Furthermore, since I suspect this has something to do with https://github.com/bahmutov/cypress-esbuild-preprocessor/issues/380, I ask that you try this using non-cucumber tests while using the esbuild bundler, to see if it is infact there the problem lies.

mysticdevx commented 1 month ago

I dont think its about compile error, bc the files are compiled, just its too late for cypress to detect the changes (I say this bc when watch mode is true, i see cypress runs twice in very small interval of time, and when watch mode is false every second attpemt make it run).

But ok, its logical to isolate the issue if its only about cucumber preprocessor - i dint think of it :( I'll try with non-cucumber / esbuild preprocessor to isolate the issue, then if necessary will add steps to reproduce. Thanks.