OLD | NEW |
(Empty) | |
| 1 # Buildtools unit tests |
| 2 |
| 3 ## Introduction |
| 4 |
| 5 Unit tests for buildtools, using the pytest framework. |
| 6 |
| 7 ## Approach |
| 8 |
| 9 In order to test the buildtools capability of creating WebExtension-packages |
| 10 for Chrome, Edge and Firefox, an example configuration for each platform is |
| 11 provided. |
| 12 Running the tests calls the same API as the cli would, except for releases |
| 13 (we don't want to trigger our releaseAutomation during tests) - in this case, |
| 14 a build is manually created and verified) |
| 15 |
| 16 Each extension is build with different parameters, the resulting package and |
| 17 it's content is compared against provided expected results: |
| 18 |
| 19 - Release or build-only, with or without a specific build-number (Edge) |
| 20 - Release, build-only or developement environment, with or without a specifc |
| 21 build-number (Chrome, Firefox), with or without a predefined signing key |
| 22 (Chrome) |
| 23 |
| 24 The expected results for each manifest are provided with the files in |
| 25 `expecteddata/`. |
| 26 |
| 27 ## Test cases |
| 28 |
| 29 _(covered platforms are referred to as C=Chrome, E=Edge, F=Firefox)_ |
| 30 |
| 31 - Metadata inheritance (EF) |
| 32 - correct package filename (CEF) |
| 33 - Printed warning about non-square icons (CF) |
| 34 - Presence of javascript unit test files in developement environment (CF) |
| 35 - Absence of javascript unit test files in build-only or release (CF) |
| 36 - Inlcusion of defined contentScripts into the manifest (CF) |
| 37 - Packaging (and moving) of included icons / scripts / htmls (CEF) |
| 38 - Presence of files for all configured locales (CEF) |
| 39 - Correct import of translations with or without placeholders, with or without |
| 40 access keys (CF) |
| 41 - Translation presence and validity for the Chrome Web Store (C) |
| 42 - Packaging of modularized script files (CF) |
| 43 - Adherence to provided build-number in the manifest (CEF) |
| 44 - Other content in the manifest (CEF) |
| 45 - Correct encrypted signature of the package (C) |
| 46 |
| 47 ## Requirements |
| 48 |
| 49 - [Tox](https://pypi.python.org/pypi/tox) (>= 2.7.0) |
| 50 |
| 51 _(Tox will take care of installing the other dependencies such as flake8 and |
| 52 flake8-abp inside a virtualenv.)_ |
| 53 |
| 54 ## Usage |
| 55 |
| 56 To run the tests simply run |
| 57 |
| 58 `tox` |
| 59 |
| 60 in the buildtools' rootfolder. |
| 61 |
| 62 ## Coverage |
| 63 |
| 64 Pytest will create a coverage report as output to the terminal, using the |
| 65 pytest plugin `pytest-cov`. |
| 66 |
| 67 In order to get an html report you can add `--cov-report=html` to the |
| 68 pytest-command in tox.ini. |
| 69 |
| 70 For more information please refer to the |
| 71 [coverage documentation](https://coverage.readthedocs.io/) |
OLD | NEW |