Explorar o código

validation tests use code instead of compiled viewer

Raanan Weber %!s(int64=7) %!d(string=hai) anos
pai
achega
9c88832ab7

BIN=BIN
Viewer/tests/validation/ReferenceImages/BrainStemAnimation1.png


BIN=BIN
Viewer/tests/validation/ReferenceImages/Control.png


+ 1 - 6
Viewer/tests/validation/config.json

@@ -57,14 +57,9 @@
                         "url": "/dist/assets/environment/DefaultSkybox_cube_radiance_256.dds",
                         "url": "/dist/assets/environment/DefaultSkybox_cube_radiance_256.dds",
                         "gammaSpace": false
                         "gammaSpace": false
                     }
                     }
-                },
-                "model": {
-                    "animation": {
-                        "autoStart": true
-                    }
                 }
                 }
             },
             },
-            "waitForFrame": 80,
+            "animationTest": true,
             "model": "/dist/assets/BrainStem/BrainStem.gltf",
             "model": "/dist/assets/BrainStem/BrainStem.gltf",
             "referenceImage": "BrainStemAnimation1.png"
             "referenceImage": "BrainStemAnimation1.png"
         },
         },

+ 49 - 44
Viewer/tests/validation/integration.js

@@ -1,55 +1,60 @@
 window.__karma__.loaded = function () { };
 window.__karma__.loaded = function () { };
 
 
-// Loading tests
-var xhr = new XMLHttpRequest();
+window.validation = true;
 
 
-xhr.open("GET", "/tests/validation/config.json", true);
+window.onload = function () {
+    // Loading tests
+    var xhr = new XMLHttpRequest();
 
 
-xhr.addEventListener("load", function () {
-    if (xhr.status === 200) {
+    xhr.open("GET", "/tests/validation/config.json", true);
 
 
-        config = JSON.parse(xhr.responseText);
+    xhr.addEventListener("load", function () {
+        if (xhr.status === 200) {
 
 
-        describe("Validation Tests", function () {
-            // Run tests
-            for (let index = 0; index < config.tests.length; index++) {
-                var test = config.tests[index];
-                if (test.onlyVisual || test.excludeFromAutomaticTesting) {
-                    continue;
-                }
+            config = JSON.parse(xhr.responseText);
 
 
-                it(test.title, function (done) {
-                    this.timeout(60000);
-
-                    var deferredDone = function (err) {
-                        setTimeout(function () {
-                            done(err);
-                        }, 3000);
+            describe("Validation Tests", function () {
+                // Run tests
+                for (let index = 0; index < config.tests.length; index++) {
+                    var test = config.tests[index];
+                    if (test.onlyVisual || test.excludeFromAutomaticTesting) {
+                        continue;
                     }
                     }
 
 
-                    try {
-                        runTest(index, function (result, screenshot) {
-                            try {
-                                expect(result).to.be.true;
-                                deferredDone();
-                            }
-                            catch (e) {
-                                if (screenshot) {
-                                    console.error(screenshot);
-                                }
-                                deferredDone(e);
-                            }
-                        });
-                    }
-                    catch (e) {
-                        deferredDone(e);
-                    }
-                });
-            };
-        });
+                    it(test.title, function (done) {
+                        this.timeout(60000);
 
 
-        window.__karma__.start();
-    }
-}, false);
+                        var deferredDone = function (err) {
+                            setTimeout(function () {
+                                done(err);
+                            }, 1000);
+                        }
 
 
-xhr.send();
+                        try {
+                            runTest(index, function (result, screenshot) {
+                                try {
+                                    expect(result).to.be.true;
+                                    deferredDone();
+                                }
+                                catch (e) {
+                                    if (screenshot) {
+                                        console.error(screenshot);
+                                    }
+                                    deferredDone(e);
+                                }
+                            });
+                        }
+                        catch (e) {
+                            deferredDone(e);
+                        }
+                    });
+                };
+            });
+
+            window.__karma__.start();
+        }
+    }, false);
+
+
+    xhr.send();
+}

+ 1 - 2
Viewer/tests/validation/karma.conf.js

@@ -1,7 +1,6 @@
 module.exports = function (config) {
 module.exports = function (config) {
     'use strict';
     'use strict';
     config.set({
     config.set({
-
         basePath: '../../',
         basePath: '../../',
         captureTimeout: 3e5,
         captureTimeout: 3e5,
         browserNoActivityTimeout: 3e5,
         browserNoActivityTimeout: 3e5,
@@ -15,8 +14,8 @@ module.exports = function (config) {
 
 
         files: [
         files: [
             './tests/validation/index.css',
             './tests/validation/index.css',
-            '../dist/preview release/viewer/babylon.viewer.max.js',
             './tests/validation/integration.js',
             './tests/validation/integration.js',
+            './tests/build/test.js',
             './tests/validation/validation.js',
             './tests/validation/validation.js',
             { pattern: './tests/**/*', watched: false, included: false, served: true },
             { pattern: './tests/**/*', watched: false, included: false, served: true },
             { pattern: './dist/assets/**/*', watched: false, included: false, served: true },
             { pattern: './dist/assets/**/*', watched: false, included: false, served: true },

+ 7 - 2
Viewer/tests/validation/validation.js

@@ -215,7 +215,7 @@ function runTest(index, done) {
     currentViewer.onInitDoneObservable.add(() => {
     currentViewer.onInitDoneObservable.add(() => {
 
 
         var currentFrame = 0;
         var currentFrame = 0;
-        var waitForFrame = test.waitForFrame || 1;
+        var waitForFrame = test.waitForFrame || 0;
 
 
         if (test.model) {
         if (test.model) {
             currentViewer.initModel(test.model);
             currentViewer.initModel(test.model);
@@ -223,8 +223,12 @@ function runTest(index, done) {
             prepareMeshForViewer(currentViewer, configuration, test);
             prepareMeshForViewer(currentViewer, configuration, test);
         }
         }
 
 
-        currentViewer.onModelLoadedObservable.add(() => {
+        currentViewer.onModelLoadedObservable.add((model) => {
             currentViewer.onFrameRenderedObservable.add(() => {
             currentViewer.onFrameRenderedObservable.add(() => {
+                if (test.animationTest && !currentFrame) {
+                    console.log("animation", model.getAnimationNames()[0]);
+                    model.playAnimation(model.getAnimationNames()[0]);
+                }
                 if (currentFrame === waitForFrame) {
                 if (currentFrame === waitForFrame) {
                     currentViewer.sceneManager.scene.executeWhenReady(() => {
                     currentViewer.sceneManager.scene.executeWhenReady(() => {
                         evaluate(test, resultCanvas, result, renderImage, index, waitRing, done);
                         evaluate(test, resultCanvas, result, renderImage, index, waitRing, done);
@@ -275,3 +279,4 @@ function init() {
 }
 }
 
 
 init();
 init();
+