Procházet zdrojové kódy

Browser stack readyness

Sebastien Vandenberghe před 7 roky
rodič
revize
13ede5cad9

+ 3 - 2
Tools/Gulp/gulpfile.js

@@ -420,6 +420,7 @@ var buildExternalLibrary = function (library, settings, watch) {
  * The default task, concat and min the main BJS files.
  */
 gulp.task("default", function (cb) {
+    // runSequence("typescript-all", "intellisense", "tests-browserStack", cb);
     runSequence("typescript-all", "intellisense", cb);
 });
 
@@ -570,14 +571,14 @@ gulp.task("tests-integration", function (done) {
     server.start();
 });
 
-gulp.task("tests-saucelabs", function (done) {
+gulp.task("tests-browserStack", function (done) {
     if (!process.env.TRAVIS) {
         done();
         return;
     }
 
     var kamaServerOptions = {
-        configFile: __dirname + "/../../tests/validation/karma.conf.saucelabs.js",
+        configFile: __dirname + "/../../tests/validation/karma.conf.browserstack.js",
         singleRun: true
     };
 

+ 1 - 1
Tools/Gulp/package.json

@@ -46,7 +46,7 @@
         "webpack-stream": "^4.0.0",
         "karma": "^2.0.0",
         "karma-chrome-launcher": "^2.2.0",
-        "karma-sauce-launcher": "^1.2.0",
+        "karma-browserstack-launcher": "^1.3.0",
         "mocha": "^4.0.1",
         "chai": "^4.1.2",
         "sinon": "^4.1.3",

binární
favicon.ico


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
readme.md


+ 9 - 2
tests/validation/integration.js

@@ -18,6 +18,10 @@ xhr.addEventListener("load", function () {
                     .require('/tests/validation/validation.js')
                     .useDist()
                     .load(function () {
+                        var info = engine.getGlInfo();
+                        console.log("Webgl Version: " + info.version);
+                        console.log("Webgl Vendor: " + info.vendor);
+                        console.log("Webgl Renderer: " + info.renderer);
                         done();
                     });
             });
@@ -33,12 +37,15 @@ xhr.addEventListener("load", function () {
                     this.timeout(240000);
 
                     try {
-                        runTest(index, function (result) {
+                        runTest(index, function(result, screenshot) {
                             try {
-                                expect(result).to.be.true;
+                                expect(result).to.be.true; 
                                 done();
                             }
                             catch (e) {
+                                if (screenshot) {
+                                    console.error(screenshot);
+                                }
                                 done(e);
                             }
                         });

+ 89 - 0
tests/validation/karma.conf.browserstack.js

@@ -0,0 +1,89 @@
+module.exports = function (config) {
+    'use strict';
+    config.set({
+
+        basePath: '../../',
+        captureTimeout: 3e5,
+        browserNoActivityTimeout: 3e5,
+        browserDisconnectTimeout: 3e5,
+        browserDisconnectTolerance: 3,
+
+        urlRoot: '/karma',
+
+        frameworks: ['mocha', 'chai', 'sinon'],
+
+        files: [
+            './Tools/DevLoader/BabylonLoader.js',
+            './tests/validation/index.css',
+            './tests/validation/integration.js',
+            './favicon.ico',
+            { pattern: 'dist/**/*', watched: false, included: false, served: true },
+            { pattern: 'assets/**/*', watched: false, included: false, served: true },
+            { pattern: 'tests/**/*', watched: false, included: false, served: true },
+            { pattern: 'Playground/scenes/**/*', watched: false, included: false, served: true },
+            { pattern: 'Playground/textures/**/*', watched: false, included: false, served: true },
+            { pattern: 'Playground/sounds/**/*', watched: false, included: false, served: true },
+            { pattern: 'Tools/DevLoader/**/*', watched: false, included: false, served: true },            
+            { pattern: 'Tools/Gulp/config.json', watched: false, included: false, served: true },
+        ],
+        proxies: {
+            '/': '/base/'
+        },
+
+        port: 1338,
+        colors: true,
+        autoWatch: false,
+        singleRun: false,
+
+        // level of logging
+        // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
+        logLevel: config.LOG_INFO,
+
+        browserStack: {
+            project: 'Babylon JS Validation Tests',
+            video: false,
+            debug : 'true',
+            timeout: 900
+        },
+        customLaunchers: {
+            bs_chrome_win: {
+                base: 'BrowserStack',
+                browser: 'Chrome',
+                browser_version: '63.0',
+                os: 'Windows',
+                os_version: '10'
+            },
+            bs_edge_win: {
+                base: 'BrowserStack',
+                browser: 'Edge',
+                browser_version: '16.0',
+                os: 'Windows',
+                os_version: '10'
+            },
+            bs_firefox_win: {
+                base: 'BrowserStack',
+                browser: 'Firefox',
+                browser_version: '57.0',
+                os: 'Windows',
+                os_version: '10'
+            },
+            bs_chrome_android: {
+                base: 'BrowserStack',
+                os: 'Android',
+                os_version : '8.0',
+                device : 'Google Pixel',
+                real_mobile : 'true'
+            },
+            bs_safari_ios: {
+                base: 'BrowserStack',
+                os: 'ios',
+                os_version : '10.3',
+                device : 'iPhone 7',
+                real_mobile : 'true'
+            }
+        },
+        browsers: ['bs_firefox_win', 'bs_chrome_android'],
+        reporters: ['dots', 'BrowserStack'],
+        singleRun: true
+    });
+};

+ 0 - 74
tests/validation/karma.conf.saucelabs.js

@@ -1,74 +0,0 @@
-// sl_ie_11: {
-//     base: 'SauceLabs',
-//     browserName: 'internet explorer',
-//     platform: 'Windows 10',
-//     version: '11'
-// },
-// sl_android: {
-//     base: 'SauceLabs',
-//     browserName: 'Browser',
-//     platform: 'Android',
-//     version: '4.4',
-//     deviceName: 'Samsung Galaxy S3 Emulator',
-//     deviceOrientation: 'portrait'
-// }
-
-module.exports = function (config) {
-    'use strict';
-    config.set({
-
-        basePath: '../../',
-        browserNoActivityTimeout: 1800000,
-
-        urlRoot: '/karma',
-
-        frameworks: ['mocha', 'chai', 'sinon'],
-
-        files: [
-            './Tools/DevLoader/BabylonLoader.js',
-            './tests/validation/index.css',
-            './tests/validation/integration.js',
-            { pattern: 'dist/**/*', watched: false, included: false, served: true },
-            { pattern: 'assets/**/*', watched: false, included: false, served: true },
-            { pattern: 'tests/**/*', watched: false, included: false, served: true },
-            { pattern: 'Playground/scenes/**/*', watched: false, included: false, served: true },
-            { pattern: 'Playground/textures/**/*', watched: false, included: false, served: true },
-            { pattern: 'Playground/sounds/**/*', watched: false, included: false, served: true },
-            { pattern: 'Tools/DevLoader/**/*', watched: false, included: false, served: true },            
-            { pattern: 'Tools/Gulp/config.json', watched: false, included: false, served: true },
-        ],
-        proxies: {
-            '/': '/base/'
-        },
-
-        port: 1338,
-        colors: true,
-        autoWatch: false,
-        singleRun: false,
-
-        // level of logging
-        // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
-        logLevel: config.LOG_ERROR,
-
-        sauceLabs: {
-            testName: 'Babylon JS Validation Tests',
-            startConnect: false,
-            tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER,
-            build: process.env.TRAVIS_BUILD_NUMBER,
-            tags: [process.env.TRAVIS_BRANCH, process.env.TRAVIS_PULL_REQUEST],
-            public: 'public'
-        },
-        customLaunchers: {
-            sl_firefox: {
-              base: 'SauceLabs',
-              browserName: 'firefox',
-              platform: 'Windows 10',
-              version: '57',
-              tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER
-            }
-        },
-        browsers: ['sl_firefox'],
-        reporters: ['dots', 'saucelabs'],
-        singleRun: true
-    });
-};

+ 3 - 2
tests/validation/validation.js

@@ -120,11 +120,12 @@ function evaluate(test, resultCanvas, result, renderImage, index, waitRing, done
     }
     waitRing.classList.add("hidden");
 
-    renderImage.src = saveRenderImage(renderData, canvas);
+    var renderB64 = saveRenderImage(renderData, canvas);
+    renderImage.src = renderB64;
 
     currentScene.dispose();
 
-    done(testRes);
+    done(testRes, renderB64);
 }
 
 function processCurrentScene(test, resultCanvas, result, renderImage, index, waitRing, done) {