aboutsummaryrefslogtreecommitdiffhomepage
path: root/support/doc/development/tests.md
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2021-11-02 10:13:53 +0100
committerChocobozzz <me@florianbigard.com>2021-11-02 10:13:53 +0100
commit9883e60f307c8161ef694b8fc209b857b196add0 (patch)
treea2f81ace111b33cdfa5aa37e9f997ef38fe0f9bb /support/doc/development/tests.md
parentf1c861727c1d2f9eacf98821c81f0f8cdcb57317 (diff)
downloadPeerTube-9883e60f307c8161ef694b8fc209b857b196add0.tar.gz
PeerTube-9883e60f307c8161ef694b8fc209b857b196add0.tar.zst
PeerTube-9883e60f307c8161ef694b8fc209b857b196add0.zip
Improve tests documentation
Diffstat (limited to 'support/doc/development/tests.md')
-rw-r--r--support/doc/development/tests.md41
1 files changed, 28 insertions, 13 deletions
diff --git a/support/doc/development/tests.md b/support/doc/development/tests.md
index fb3a05326..d0e88a5eb 100644
--- a/support/doc/development/tests.md
+++ b/support/doc/development/tests.md
@@ -4,19 +4,19 @@
4 4
5Prepare PostgreSQL user so PeerTube can delete/create the test databases: 5Prepare PostgreSQL user so PeerTube can delete/create the test databases:
6 6
7``` 7```bash
8$ sudo -u postgres createuser you_username --createdb --superuser 8$ sudo -u postgres createuser you_username --createdb --superuser
9``` 9```
10 10
11Prepare databases: 11Prepare databases:
12 12
13``` 13```bash
14$ npm run clean:server:test 14$ npm run clean:server:test
15``` 15```
16 16
17Build PeerTube: 17Build PeerTube:
18 18
19``` 19```bash
20$ npm run build 20$ npm run build
21``` 21```
22 22
@@ -26,7 +26,7 @@ $ npm run build
26 26
27Run docker containers needed by some test files: 27Run docker containers needed by some test files:
28 28
29``` 29```bash
30$ sudo docker run -p 9444:9000 chocobozzz/s3-ninja 30$ sudo docker run -p 9444:9000 chocobozzz/s3-ninja
31$ sudo docker run -p 10389:10389 chocobozzz/docker-test-openldap 31$ sudo docker run -p 10389:10389 chocobozzz/docker-test-openldap
32``` 32```
@@ -35,22 +35,37 @@ $ sudo docker run -p 10389:10389 chocobozzz/docker-test-openldap
35 35
36To run all test suites: 36To run all test suites:
37 37
38``` 38```bash
39$ npm run test # See scripts/test.sh to run a particular suite 39$ npm run test # See scripts/test.sh to run a particular suite
40``` 40```
41 41
42To run a particular test file: 42Most of tests can be runned using:
43 43
44``` 44```bash
45TS_NODE_TRANSPILE_ONLY=true mocha -- --timeout 30000 --exit -r ts-node/register -r tsconfig-paths/register --bail server/tests/api/videos/video-transcoder.ts 45TS_NODE_TRANSPILE_ONLY=true mocha -- --timeout 30000 --exit -r ts-node/register -r tsconfig-paths/register --bail server/tests/api/videos/video-transcoder.ts
46``` 46```
47 47
48`server/tests/api/activitypub` tests will need different options:
49
50```
51TS_NODE_FILES=true mocha -- --timeout 30000 --exit -r ts-node/register -r tsconfig-paths/register --bail server/tests/api/activitypub/security.ts
52```
53
48### Configuration 54### Configuration
49 55
50Some env variables can be defined to disable/enable some tests: 56Some env variables can be defined to disable/enable some tests:
51 57
52 * `DISABLE_HTTP_IMPORT_TESTS`: disable import tests (because of youtube that could rate limit your IP) 58 * `DISABLE_HTTP_IMPORT_TESTS=true`: disable import tests (because of youtube that could rate limit your IP)
53 * `ENABLE_OBJECT_STORAGE_TESTS=true`: enable object storage tests (needs a docker container first) 59 * `ENABLE_OBJECT_STORAGE_TESTS=true`: enable object storage tests (needs `chocobozzz/s3-ninja` container first)
60
61
62### Debug server logs
63
64While testing, you might want to display a server's logs to understand why they failed:
65
66```bash
67NODE_APP_INSTANCE=1 NODE_ENV=test npm run parse-log -- --level debug | less +GF
68```
54 69
55 70
56## Client E2E tests 71## Client E2E tests
@@ -59,7 +74,7 @@ Some env variables can be defined to disable/enable some tests:
59 74
60To run tests on local web browsers (comment web browsers you don't have in `client/e2e/wdio.local.conf.ts`): 75To run tests on local web browsers (comment web browsers you don't have in `client/e2e/wdio.local.conf.ts`):
61 76
62``` 77```bash
63$ npm run e2e:local 78$ npm run e2e:local
64``` 79```
65 80
@@ -67,7 +82,7 @@ $ npm run e2e:local
67 82
68To run tests on browser stack: 83To run tests on browser stack:
69 84
70``` 85```bash
71$ BROWSERSTACK_USER=your_user BROWSERSTACK_KEY=your_key npm run e2e:browserstack 86$ BROWSERSTACK_USER=your_user BROWSERSTACK_KEY=your_key npm run e2e:browserstack
72``` 87```
73 88
@@ -75,13 +90,13 @@ $ BROWSERSTACK_USER=your_user BROWSERSTACK_KEY=your_key npm run e2e:browserstack
75 90
76To add E2E tests and quickly run tests using a local Chrome, first create a test instance: 91To add E2E tests and quickly run tests using a local Chrome, first create a test instance:
77 92
78``` 93```bash
79$ npm run clean:server:test && NODE_APP_INSTANCE=1 NODE_ENV=test npm start 94$ npm run clean:server:test && NODE_APP_INSTANCE=1 NODE_ENV=test npm start
80``` 95```
81 96
82Then, just run your suite using: 97Then, just run your suite using:
83 98
84``` 99```bash
85$ cd client/e2e 100$ cd client/e2e
86$ ../node_modules/.bin/wdio wdio.local-test.conf.ts # you can also add --mochaOpts.grep to only run tests you want 101$ ../node_modules/.bin/wdio wdio.local-test.conf.ts # you can also add --mochaOpts.grep to only run tests you want
87``` 102```