CodeceptJS icon indicating copy to clipboard operation
CodeceptJS copied to clipboard

Make stepping with debugger possible - resolve steps immediately

Open xt1 opened this issue 6 years ago • 4 comments

What are you trying to achieve?

Stepping using debugger while watching test execution in browser.

What do you get instead?

I get a bunch of promises that evaluate immediately, meaning the browser does nothing until I hit pause() or the test completes, then the commands start to execute.

/// <reference path="../steps.d.ts" />

Feature('Checking debug');

Scenario('test something', (I) => {
  I.amOnPage("/");
  I.see("CRM Online");
  pause(); // or a breakpoint
  I.see("Log in with your registered account");
  I.click("Next");
  // step to here, and browser is still not doing anything.
});

Details

  • CodeceptJS version: 1.3.0
  • NodeJS Version: 8.11.3
  • Operating System: win10 64bit

xt1 avatar Jul 02 '18 14:07 xt1

That's why we have pause() 🤗

If you want TRUE step-by-step execution just put it into async function and add await for each operator. But basically you don't need to do the heavy debugging unless you are fixing something in CodeceptJS core... For everything else you have pause()

DavertMik avatar Jul 04 '18 11:07 DavertMik

Some people just want to single step. I'll see if the await-everything solution satisfies them.

xt1 avatar Jul 07 '18 19:07 xt1

I'm planning to improve pause() to provide step-by-step debugging experience. But not sure when

DavertMik avatar Jul 07 '18 20:07 DavertMik

I am looking for some help doing the same thing in vs code, stepping through my codeceptjs async scenario one line at a time without adding await before each line. The same thing is happening to me as the first comment, when I step over a console log, it prints to the console. But any other step does not execute until the end of the scenario unless I add the await command before it. I see the last entry here is from 2018, has anything changed to make this possible?

mrcjbf0001 avatar Jul 26 '21 19:07 mrcjbf0001