Left: | ||
Right: |
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)_ | |
kzar
2017/10/17 13:03:54
Nit: Missing full stop.
tlucas
2017/10/18 11:23:05
Done.
| |
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 / HTML files (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 (CEF) | |
41 - Translation presence and validity for the Chrome Web Store (C) | |
42 - Packaging of modularized script files with webpack (CEF) | |
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 ``` | |
59 $ tox | |
60 ``` | |
61 | |
62 in the buildtools' root folder. | |
63 | |
64 ## Coverage | |
65 | |
66 Pytest will create a coverage report as output to the terminal, using the | |
67 pytest plugin `pytest-cov`. | |
68 | |
69 In order to get an html report you can add `--cov-report=html` to the | |
70 pytest-command in tox.ini. | |
71 | |
72 For more information please refer to the | |
73 [coverage documentation](https://coverage.readthedocs.io/) | |
OLD | NEW |