X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=support%2Fdoc%2Fdevelopment%2Ftests.md;h=d36cf8544f012ec67b4e10dcdaa49310f3cd51ff;hb=11e520b50d791a0dd48cbb2d0fc681b25eb7cd53;hp=e311d326793e8e8f1bc6411de26d2534d11cc0d6;hpb=12d6b873cd4c5eb8c4fd298885e0c7fa6deb3756;p=github%2FChocobozzz%2FPeerTube.git diff --git a/support/doc/development/tests.md b/support/doc/development/tests.md index e311d3267..d36cf8544 100644 --- a/support/doc/development/tests.md +++ b/support/doc/development/tests.md @@ -4,19 +4,19 @@ Prepare PostgreSQL user so PeerTube can delete/create the test databases: -``` +```bash $ sudo -u postgres createuser you_username --createdb --superuser ``` Prepare databases: -``` +```bash $ npm run clean:server:test ``` Build PeerTube: -``` +```bash $ npm run build ``` @@ -26,7 +26,7 @@ $ npm run build Run docker containers needed by some test files: -``` +```bash $ sudo docker run -p 9444:9000 chocobozzz/s3-ninja $ sudo docker run -p 10389:10389 chocobozzz/docker-test-openldap ``` @@ -35,22 +35,37 @@ $ sudo docker run -p 10389:10389 chocobozzz/docker-test-openldap To run all test suites: -``` +```bash $ npm run test # See scripts/test.sh to run a particular suite ``` -To run a particular test file: +Most of tests can be runned using: +```bash +TS_NODE_TRANSPILE_ONLY=true npm run mocha -- --timeout 30000 --exit -r ts-node/register -r tsconfig-paths/register --bail server/tests/api/videos/video-transcoder.ts ``` -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 + +`server/tests/api/activitypub` tests will need different options: + +``` +TS_NODE_FILES=true mocha -- --timeout 30000 --exit -r ts-node/register -r tsconfig-paths/register --bail server/tests/api/activitypub/security.ts ``` ### Configuration Some env variables can be defined to disable/enable some tests: - * `DISABLE_HTTP_IMPORT_TESTS`: disable import tests (because of youtube that could rate limit your IP) - * `ENABLE_OBJECT_STORAGE_TESTS=true`: enable object storage tests (needs a docker container first) + * `DISABLE_HTTP_IMPORT_TESTS=true`: disable import tests (because of youtube that could rate limit your IP) + * `ENABLE_OBJECT_STORAGE_TESTS=true`: enable object storage tests (needs `chocobozzz/s3-ninja` container first) + + +### Debug server logs + +While testing, you might want to display a server's logs to understand why they failed: + +```bash +NODE_APP_INSTANCE=1 NODE_ENV=test npm run parse-log -- --level debug | less +GF +``` ## Client E2E tests @@ -59,7 +74,7 @@ Some env variables can be defined to disable/enable some tests: To run tests on local web browsers (comment web browsers you don't have in `client/e2e/wdio.local.conf.ts`): -``` +```bash $ npm run e2e:local ``` @@ -67,6 +82,21 @@ $ npm run e2e:local To run tests on browser stack: -``` +```bash $ BROWSERSTACK_USER=your_user BROWSERSTACK_KEY=your_key npm run e2e:browserstack ``` + +### Add E2E tests + +To add E2E tests and quickly run tests using a local Chrome, first create a test instance: + +```bash +$ npm run clean:server:test && NODE_APP_INSTANCE=1 NODE_ENV=test npm start +``` + +Then, just run your suite using: + +```bash +$ cd client/e2e +$ ../node_modules/.bin/wdio wdio.local-test.conf.ts # you can also add --mochaOpts.grep to only run tests you want +```