-
-
Notifications
You must be signed in to change notification settings - Fork 31
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
Implement framework to invoke/exercise UI modules in testing environment #232
Comments
In general I like this plan, however we should refrain from doing something special for testing, and just make the app more flexible in where the config comes from. Like the queues. Also not sure why the stack methods shouldn't do anything? |
I should have been a bit more clear about the goal/type of testing I'm thinking of here... especially as I dropped this in a PR dealing with a different type of testing 😅 The key part of this for PR #231 is the dummy display which would allow us to do automated testing based off of keyboard scripts which can't be done right now. Monkey Scripts Ideally this is run on actual hardware... but making changes required to run these off the actual hardware is a good goal here and I think the main thing is the display driver. If we had that, we could do some about of CI testing using this method. This is also where I think generating a script that understands the menu system would be good thing. We can generate the right keypress into the script to visit each and every menu and send a selection of keys to each in turn, avoiding certain keys that we know will cancel or invalidate the testing. This sort of testing will be somewhat slow, as we do need to pause between each keystroke so it limits the keystroke per minute and could result in long test times. Replay / Expected Behavior Testing We could they play back the inputs (imu/keypresses/camera captures/gps) and compare the resulting state against the recorded state. This would be SLOW as it would have to run in real time... but it's an interesting idea. UI Module Unit Testing Since this is just testing a single UIModule simply returning from the add/remove from stack functions keeps the UIModule test going. A different test fixture would be required for testing the menu_manager, and we should get one of those going as well! This sort of unit test can run very fast, so it's possible to do this much more frequently. |
Once we have all of these pieces, then the test becomes
We can add this as the first integration test, but if it's takes too long we can make a new 'slow' category of tests. In any case, we can then run this on either all merges to main, or perhaps PR's or only PCs
The text was updated successfully, but these errors were encountered: