phetsims / aqua

Automatic QUality Assurance
MIT License
2 stars 4 forks source link

aqua

Automatic QUality Assurance

Continuous testing prototype (browser-based)

How to use

For detailed instructions, particularly how it is running on bayes.colorado.edu, see doc/continuous-testing-management.md. Otherwise:

  1. Check out all active-repos
  2. npm install in aqua
  3. node js/continuous-server.js in aqua (in Administrator mode in Windows, so it can make symbolic links for node_modules)
  4. Visit aqua/html/continuous-loop.html?id={{SOME_IDENTIFIER_HERE}} in various test browsers (they will run tests continuously)
  5. Visit aqua/html/continuous-report.html to view current status

Top-level documentation

continuous-server.js kicks off:

  1. A loop that continuously checks whether newer SHAs are available upstream. When a newer SHA is detected, a "stale" flag is set, and repos are pulled. It continues looping until ALL repos are up-to-date (to ensure we catch all pushes if many repos are being pushed to), then creates a snapshot. A snapshot is a full copy of all repository contents at specific SHAs, that can be tested from without being updated.
  2. Some number of build threads. They look for any unbuilt repo from the last snapshot and built it (so we can get lint results and test the built sims).
  3. A server on port 45366, which takes requests:

A browser visiting continuous-loop.html will begin an infinite loop of requesting a test (/next-test request to the server), running that test in an iframe, forwarding pass/fail results to /test-result, and moving to the next test.

Loose ends

Ideal testing in the future