dev:contributing:qa
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| dev:contributing:qa [2015/08/05 16:40] – add test case guidelines per 2015-08-05 dev meeting gmcharlton | dev:contributing:qa [2025/09/09 14:55] (current) – lint section sleary | ||
|---|---|---|---|
| Line 35: | Line 35: | ||
| ===== Types of Tests ===== | ===== Types of Tests ===== | ||
| + | |||
| + | ==== AngularJS Unit Tests ==== | ||
| + | |||
| + | These test the Web Client apps. | ||
| + | |||
| + | * They are stored in '' | ||
| + | * See the [[https:// | ||
| + | |||
| + | Running the tests: | ||
| + | * See the [[https:// | ||
| + | * Steps to run the tests as of Evergreen 3.1: | ||
| + | |||
| + | cd $EVERGREEN_ROOT/ | ||
| + | # fetch JS dependencies, | ||
| + | npm install | ||
| + | # build, run tests, concat+minify | ||
| + | npm run build-prod | ||
| + | npm run test | ||
| + | |||
| + | ==== Angular Lint ==== | ||
| + | |||
| + | See '' | ||
| + | |||
| + | To run on a running Evergreen server: | ||
| + | |||
| + | <code sh> | ||
| + | cd Open-ILS/ | ||
| + | ng lint | ||
| + | </ | ||
| + | |||
| + | To fix syntax errors automatically: | ||
| + | |||
| + | <code sh> | ||
| + | cd Open-ILS/ | ||
| + | ng lint --fix | ||
| + | </ | ||
| + | |||
| + | We also have several [[https:// | ||
| + | |||
| + | You can check out [[https:// | ||
| + | |||
| + | ==== Angular Unit Tests ==== | ||
| + | |||
| + | See [[dev: | ||
| + | |||
| + | To run on a running Evergreen server: | ||
| + | |||
| + | <code sh> | ||
| + | cd Open-ILS/ | ||
| + | npm run test | ||
| + | </ | ||
| + | |||
| + | === Common things that break Angular unit tests === | ||
| + | |||
| + | == Changing DOM selectors == | ||
| + | |||
| + | If the test is expecting a certain DOM element, but you change the structure within an Angular template, the test might start failing. | ||
| + | |||
| + | Note that you can use text of a button as a selector. | ||
| + | |||
| + | To fix it: update the selector in the test. Or perhaps the test can be made more general. | ||
| + | |||
| + | == Adding a new service == | ||
| + | |||
| + | Adding a new service | ||
| + | |||
| + | To fix it: add a mock for the new service in the test. Or even better, consider if you can simplify or refactor the component so that it does not need many different services. | ||
| + | |||
| + | == Lifecycle/ | ||
| + | |||
| + | Interacting with anything asynchronous (especially grid and combobox) requires some care! | ||
| + | |||
| + | To fix it: You may be able to add a setTimeout. | ||
| + | |||
| + | ==== Angular e2e (end-to-end) Tests ==== | ||
| + | |||
| + | To run with a GUI: | ||
| + | |||
| + | <code sh> | ||
| + | cd Open-ILS/ | ||
| + | ng e2e | ||
| + | </ | ||
| + | |||
| + | To run without a GUI: | ||
| + | |||
| + | <code sh> | ||
| + | cd Open-ILS/ | ||
| + | MOZ_HEADLESS=1 ng e2e | ||
| + | </ | ||
| + | |||
| + | To run in Chrome instead of Firefox: | ||
| + | <code sh> | ||
| + | cd Open-ILS/ | ||
| + | npm install --save-dev chromedriver | ||
| + | ng e2e --env chrome # with the GUI | ||
| + | ng e2e --env chrome-headless # without the GUI | ||
| + | </ | ||
| + | |||
| + | For more tips and documentation, | ||
| + | |||
| + | ==== OPAC Javascript Unit Tests ==== | ||
| + | |||
| + | To run tests for the javascript in the OPAC: | ||
| + | <code sh> | ||
| + | cd Open-ILS/ | ||
| + | npm i && npm run test | ||
| + | </ | ||
| ==== Perl Unit Tests ==== | ==== Perl Unit Tests ==== | ||
| Line 95: | Line 202: | ||
| The " | The " | ||
| + | |||
| + | Install pgtap from source, the versions in Debian/ | ||
| + | |||
| + | * Download from - http:// | ||
| + | * Install Instructions - http:// | ||
| + | * Install the package for libtap-parser-sourcehandler-pgtap-perl which provides pg_prove. | ||
| <code sh> | <code sh> | ||
| - | sudo apt-get install pgtap # debian/ubuntu version | + | apt-get install |
| psql -U evergreen [other DB connection params] -c " | psql -U evergreen [other DB connection params] -c " | ||
| </ | </ | ||
| Line 120: | Line 233: | ||
| <code sh> | <code sh> | ||
| cd Open-ILS/ | cd Open-ILS/ | ||
| - | pg_prove -U evergreen [other DB connection params] | + | pg_prove -U evergreen [other DB connection params] |
| </ | </ | ||
| Line 132: | Line 245: | ||
| At time of writing, there is no equivalent to " | At time of writing, there is no equivalent to " | ||
| + | |||
| + | {{tag> | ||
dev/contributing/qa.1438807246.txt.gz · Last modified: 2022/02/10 13:34 (external edit)