diff --git a/contributor_docs/unit_testing.md b/contributor_docs/unit_testing.md index 35efe785eb..072ba65705 100644 --- a/contributor_docs/unit_testing.md +++ b/contributor_docs/unit_testing.md @@ -141,10 +141,8 @@ When you add a new test, running `npm test` will generate new screenshots for an To manually inspect all visual tests, run `grunt yui:dev` to launch a local server, then go to http://127.0.0.1:9001/test/visual.html to see a list of all test cases. -The visual test environment is set up to execute your commands sequentially rather than running a preload or draw function that you provide. -In continuous integration (CI) environments, it's crucial to keep tests running as quickly as possible. Running a full `preload/draw` cycle as in a regular p5.js sketch can significantly slow down the testing process. -When testing features like 3D model rendering, you might encounter scenarios where you need to load a model before performing assertions. Here's an example of how you can handle Sequential Command Execution and Asynchronous Operations in your visual tests: - +In a continuous integration (CI) environment, optimizing test speed is essential. It is advantageous to keep the code concise, avoid unnecessary frames, minimize canvas size, and load assets only when essential for the specific functionality under test. +To address scenarios involving operations like asynchronous 3D model rendering, consider returning a promise that resolves upon completing all the necessary tests, ensuring efficiency in your visual testing approach. Here's an example of how you can asynchronous 3D model rendering in your visual tests: ```js visualSuite('3D Model rendering', function() { diff --git a/test/unit/visual/visualTest.js b/test/unit/visual/visualTest.js index a0bc033b7c..ec66fc3e07 100644 --- a/test/unit/visual/visualTest.js +++ b/test/unit/visual/visualTest.js @@ -153,10 +153,8 @@ window.visualTest = function( if (actual.length === 0) { - throw new Error('No screenshots were generated. Check if your test generates screenshots correctly.If the test includes asynchronous operations, ensure they complete before the test ends.'); + throw new Error('No screenshots were generated. Check if your test generates screenshots correctly. If the test includes asynchronous operations, ensure they complete before the test ends.'); } - - if (expectedScreenshots && actual.length !== expectedScreenshots) { throw new Error( `Expected ${expectedScreenshots} screenshot(s) but generated ${actual.length}`