Skip to content

Feat stop tests button - #800

Open
sonic16x wants to merge 2 commits into
masterfrom
stop-button
Open

Feat stop tests button#800
sonic16x wants to merge 2 commits into
masterfrom
stop-button

Conversation

@sonic16x

@sonic16x sonic16x commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Now user can stop all test after run using stop button which appear after click to start button.

Screenshot 2026-08-26 at 04 20 26 Screenshot 2026-08-23 at 23 22 23 Screenshot 2026-08-26 at 04 20 50

@pkg-pr-new

pkg-pr-new Bot commented Aug 23, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/html-reporter@800

commit: 6f1f451

@github-actions

github-actions Bot commented Aug 23, 2026

Copy link
Copy Markdown

✅ Component tests succeed

Report

@github-actions

github-actions Bot commented Aug 23, 2026

Copy link
Copy Markdown

✅ E2E tests succeed

Report

{title: 'Next attempt', value: '→'},
{title: 'Run current test', value: 'r'},
{title: 'Run all/selected tests', value: 'shift+r'},
{title: 'Stop all tests', value: 's'},

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have a conflict, like 20 lines above — S is already used for Suites page.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now shitf+s, but maybe just x ?

@shadowusr

Copy link
Copy Markdown
Member

Browsers are not closed reliably on stop, I reproduced this multiple times, when after stopping, the browsers are left hanging:

Screenshot 2026-08-24 at 5 02 53 PM

@shadowusr

Copy link
Copy Markdown
Member

It doesn't seem to work right with multiple retries configured in UI. I tested it together with these changes: gemini-testing/testplane#1318

And yet, after clicking the stop button, it will stop only the current retry and not subsequent ones.

@shadowusr

Copy link
Copy Markdown
Member

IMO this looks pretty ugly:

Screenshot 2026-08-24 at 5 40 59 PM

It would be really nice if we didn't show any error at all in this case, but instead clearly stated in status "Interrupted" and for example had gray icon and gray retry selector background (not red).

This is not absolutely critical, but would be very nice to have.

@shadowusr

Copy link
Copy Markdown
Member

As for the button on the right: I think we should be able to stop tests from there. We should just clearly state "Stop all" if stopping individual test is currently hard to implement. I would imagine that upon clicking on "Retry" button it would be replaced with "Stop All" button, that doesn't have arrow down with options on the right and has the exact same size to avoid UI jumps

@shadowusr

Copy link
Copy Markdown
Member

I think e2e test on this is a must. Especially considering that it would be very easy to set it up: we already have GUI tests, so any LLM would easily generate this one.

@sonic16x
sonic16x force-pushed the stop-button branch 2 times, most recently from 7fba9a9 to dd36d6e Compare August 25, 2026 21:20
@sonic16x

Copy link
Copy Markdown
Contributor Author
Screenshot 2026-08-26 at 04 57 50

Maybe red background? But I'm not sure

@shadowusr

Copy link
Copy Markdown
Member

It works much better now, but still occasionally leaves opened browsers behind (but that's rare and not critical). When stopping tests that are waiting for session from a remote grid, i get these errors:

CancelledError
CancelledError: Browser request was cancelled

What happened:
- This test tried to run in a browser that was already stopped
- This likely happened due to a critical error, like an unhandled promise rejection
What you can do:
- Check other failed tests or execution logs for more details, usually you can find the root cause there
    at BasicPool.getBrowser (/Users/shadowusr/dev/testplane/wt/fix-testplane-9-on-old-browsers/build/src/browser-pool/basic-pool.js:79:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async LimitedPool.getBrowser (/Users/shadowusr/dev/testplane/wt/fix-testplane-9-on-old-browsers/build/src/browser-pool/limited-pool.js:37:20)
    at async BrowserAgent.getBrowser (/Users/shadowusr/dev/testplane/wt/fix-testplane-9-on-old-browsers/build/src/runner/browser-agent.js:13:25)
    at async RegularTestRunner._getBrowser (/Users/shadowusr/dev/testplane/wt/fix-testplane-9-on-old-browsers/build/src/runner/test-runner/regular-test-runner.js:155:29)
    at async RegularTestRunner._run (/Users/shadowusr/dev/testplane/wt/fix-testplane-9-on-old-browsers/build/src/runner/test-runner/regular-test-runner.js:47:29)
    at async InsistantTestRunner.run (/Users/shadowusr/dev/testplane/wt/fix-testplane-9-on-old-browsers/build/src/runner/test-runner/insistant-test-runner.js:38:9)
    at async BrowserRunner._runTest (/Users/shadowusr/dev/testplane/wt/fix-testplane-9-on-old-browsers/build/src/runner/browser-runner.js:102:9)

Instead of clean interrupted by user error. I think this would be a frequent case for sessions that take a while to start, for example, android sessions. So it would be nice to be fixed.

Also, I think it would be very important to check how it works with remote grid in this case: will those sessions be left hanging or will they be correctly stopped?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants