When setting up github actions for running system tests, it is sometimes difficult to know or debug when several tests fail to run but are running well locally.
So why don't you just save the failed screenshots so we know what the actual error was during the test?
First, we need to change the Rails config, so errors will appear in the browser just like what we get when running locally in development mode.
# config/environments/test.rb
config.consider_all_requests_local = true
To save screenshots, we can upload the screenshots to artifacts
. Uploads steps only will be performed if the system test fails to run.
- name: Run system test
run: bundle exec rails test:system
- name: Upload screenshots
uses: actions/upload-artifact@v4
if: failure()
with:
name: screenshots
path: tmp/screenshots