Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support automated UX testing #847

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

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.
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