Files
GDevelop/GDJS/tests
Florian Rival 4577bfba5a Improve gameplay tests (#9120)
- The warning about a custom object with no child in it ("it renders
nothing") fired on ParticleEmitter3D, Light3D or Text3D objects, which
are drawn by the JavaScript code of their extension (with Three.js) and
legitimately have no child. Skip it when the code replaced the renderer
of the object, or added something to draw (a mesh, a sprite, a
graphics...) in the stock renderer's container.
- The game-side wall-clock watchdog did not exclude the time the page
spent hidden (frozen by the browser), unlike the guards of the stepping
loop: a test run in a background tab or a covered window was reported as
a plain "timeout" instead of being given up on as paused by the editor.
Exclude it, and tell about that time in the timeout message.
- Reject a non-string object name with a clear error instead of asking
the scene for "[object Object]" (which registered a phantom object list
and silently found nothing), the mistake `lookTowardWithMouseDelta`
invites when the target is passed first.
2026-09-18 15:30:47 +02:00
..
2026-09-18 15:30:47 +02:00

These are the tests for the GDevelop JavaScript game engine.

Launching tests

Make sure you have Node.js installed. Update dependencies:

cd GDJS/tests
npm install

Then launch tests:

npm run test:watch # This will use Chrome Headless
npm run test-benchmark:watch # This will also run benchmarks
npm run test:firefox:watch # To run tests using Firefox

⚠️ If you're working on GDJS or extensions, make sure to have the development version of GDevelop running so that changes in GDJS or extension files are rebuilt (or run npm run build in GDJS/, but better run GDevelop so that any changes are watched).

About the tests

Unit tests

Tests are launched using Chrome. You need Chrome installed to run them. You can change the browser by modifying the package.json "test" command and install the appropriate karma package.

Tests are located in the tests folder for the game engine, or directly in the folder of the tested extensions.

Games in the games folder

Games contained in the games folder are mainly here to be launched manually to check that a particular feature is working. Read the comments in the events to see what is the expected behavior, or compare with the native platform if you can.