diff options
Diffstat (limited to 'support/doc/development')
-rw-r--r-- | support/doc/development/tests.md | 41 |
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 | ||
5 | Prepare PostgreSQL user so PeerTube can delete/create the test databases: | 5 | Prepare 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 | ||
11 | Prepare databases: | 11 | Prepare databases: |
12 | 12 | ||
13 | ``` | 13 | ```bash |
14 | $ npm run clean:server:test | 14 | $ npm run clean:server:test |
15 | ``` | 15 | ``` |
16 | 16 | ||
17 | Build PeerTube: | 17 | Build 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 | ||
27 | Run docker containers needed by some test files: | 27 | Run 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 | ||
36 | To run all test suites: | 36 | To 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 | ||
42 | To run a particular test file: | 42 | Most of tests can be runned using: |
43 | 43 | ||
44 | ``` | 44 | ```bash |
45 | TS_NODE_TRANSPILE_ONLY=true mocha -- --timeout 30000 --exit -r ts-node/register -r tsconfig-paths/register --bail server/tests/api/videos/video-transcoder.ts | 45 | TS_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 | ``` | ||
51 | TS_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 | ||
50 | Some env variables can be defined to disable/enable some tests: | 56 | Some 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 | |||
64 | While testing, you might want to display a server's logs to understand why they failed: | ||
65 | |||
66 | ```bash | ||
67 | NODE_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 | ||
60 | To run tests on local web browsers (comment web browsers you don't have in `client/e2e/wdio.local.conf.ts`): | 75 | To 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 | ||
68 | To run tests on browser stack: | 83 | To 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 | ||
76 | To add E2E tests and quickly run tests using a local Chrome, first create a test instance: | 91 | To 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 | ||
82 | Then, just run your suite using: | 97 | Then, 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 | ``` |