You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.6 KiB
42 lines
1.6 KiB
2 years ago
|
# Three.js end-to-end testing
|
||
|
|
||
|
### Motivation
|
||
|
Simplify code reviews with quick pixel testing inside CI. The same screenshots are used for thumbnails.
|
||
|
|
||
|
### Local usage
|
||
|
If you get an error in e2e test after PR and you sure that all is correct,
|
||
|
just make a new screenshot to example. As a last resort increase timeouts or add it to exception list.
|
||
|
|
||
|
```shell
|
||
|
# generate new screenshots for exact examples
|
||
|
npm run make-screenshot <example1_name> ... <exampleN_name>
|
||
|
|
||
|
# check exact examples
|
||
|
npm run test-e2e <example1_name> ... <exampleN_name>
|
||
|
|
||
|
# check all examples
|
||
|
npm run test-e2e
|
||
|
```
|
||
|
|
||
|
Merge only those commits that pass the tests, otherwise all next commits will also fail.
|
||
|
|
||
|
### How it works
|
||
|
- ci configs with parallelism
|
||
|
- deterministic random/timer/rAF/video for screenshots
|
||
|
- increased robustness with hided text, datgui, different flags and timeouts.
|
||
|
- pipeline: turn off rAF -> 'networkidle0' -> networkTax -> turn on rAF -> render promise
|
||
|
- added 3 progressive attempts for robustness
|
||
|
|
||
|
### Development progress
|
||
|
|
||
|
| Travis | Attempts |
|
||
|
|-----------------------------------------|--------------------------------------|
|
||
|
| 61 from 362 failed, time=21:14 | networkidle0 timeout |
|
||
|
| 26 from 362 failed, time=16:22 | with rAF hook |
|
||
|
| 13=1+1+7+4 failed, time=4:26 | with render promise and parallelism |
|
||
|
| 4=0+0+2+2 failed, time=5:13 | with network tax and other settings |
|
||
|
| 4=0+0+2+2 failed, time=3:26 | with progressive attempts |
|
||
|
|
||
|
### Status
|
||
|
97% examples are covered with tests. Check exception list for more information.
|