Skip to content

Support automated UX testing#847

Closed
yizhepku wants to merge 10 commits intonushell:mainfrom
yizhepku:automate-ux-testing
Closed

Support automated UX testing#847
yizhepku wants to merge 10 commits intonushell:mainfrom
yizhepku:automate-ux-testing

Conversation

@yizhepku
Copy link
Contributor

@yizhepku yizhepku commented Oct 20, 2024

This PR adds support for automated UX testing using a terminal emulator. It implements most of the checkboxes in UX_TESTING.md as automated tests.

This is a reworked and improved version of my previous PR on automated UX tests. I've made a new crate alacritty-test containing the tools. The new implementation uses polling to read from PTYs efficiently and reliably. If everything works out, we can adopt this in Nushell as well.

@sholderbach
Copy link
Member

What is your plan for the alacritty-test crate regarding future development/maintenance? Attention to reedline is fluctuating on the maintainer side so we will prefer something relatively stable, so we don't have to chase CI failures if nothing changes on the reedline side. At the same having a good testing framework with good ergonomics is probably the thing we want for the future, so we get less regressions in the previously untested interactive part.

@yizhepku
Copy link
Contributor Author

yizhepku commented Oct 21, 2024

What is your plan for the alacritty-test crate regarding future development/maintenance?

I think Reedline can just pin to a specific commit, like this PR is currently doing. PTY-related tests can be flaky, so I think that's the best way to ensure things don't break randomly.

I made alacritty-test specifically for Nushell/Reedline, so I'll only update it when I'm making a PR for Nushell/Reedline anyways.

It's useful, but probably doesn't belong to this PR.
@yizhepku yizhepku closed this by deleting the head repository Apr 1, 2025
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