Repository navigation
Adding GUI System Tests - #249
MikeSullivan7 wants to merge 29 commits into
Conversation
StephenNneji
left a comment
There was a problem hiding this comment.
Thanks for this, please see comments
Also please update the unit testing section in contributing.md appropriately
e1e04c9 to
2dc1c80
Compare
StephenNneji
left a comment
There was a problem hiding this comment.
Apologies for the long wait for review, still a few issues especially on Linux
| ("dream", 9.67234, 2000), | ||
| ] | ||
| ) | ||
| def test_run_slow(self, procedure_name, expected_chi, test_duration): |
There was a problem hiding this comment.
I have a weird issue on my Linux machine where the slow test doesn't complete for some reason. It gets stuck on 99% for dream and finish is never printed for NS. Please can you investigate on a Vm or IDAaas
…m-tests and --run-unit-tests
… project in testing
… due to matlab runner not exiting properly
74fe79b to
b414c8c
Compare
StephenNneji
left a comment
There was a problem hiding this comment.
Thanks for your hark work on this, The slow GUI test is still freezing but I am happy to address it later
| self.go_event = Event() | ||
| self.exit_event = Event() | ||
| matlab_helper = MatlabHelper() | ||
| self.matlab_helper = MatlabHelper() |
There was a problem hiding this comment.
Please revert this since the close event set call is now gone

This PR introduces a new form of GUI System Test which creates an instance of RasCal2, performs a sequence of events (clicks, typing, etc) and tests the validity of the output. This is more useful than isolated unit tests as it tests theinteraction between different parts of the program and more closely resembles a realistic user workflow.
System tests inherit the
GuiSystemBaseclass, which handles thesetUpand tearDownof theself.main_window` instance, simplifying how the tests are written.Unit tests and System tests are differentiated in pytest. We can run only unit tests via:
pytest testsorpytest tests --run-unit-testsSystem tests are run by default but can be skipped via:
pytests tests --skip_system_testsTests which take too long are marked with a "skip" mark, to run these, use the flag:
pytests tests --run_slow_testsIf we want to include screenshot/eyes tests in the future, a flag can be created for them to differentiate screenshot tests from unit and system tests.