Merge "resourceloader: Improve ResourceLoaderClientHtmlTest tests"
[lhc/web/wiklou.git] / Gruntfile.js
index 191286a..811d2c0 100644 (file)
@@ -4,6 +4,7 @@ module.exports = function ( grunt ) {
 
        var wgServer = process.env.MW_SERVER,
                wgScriptPath = process.env.MW_SCRIPT_PATH,
+               WebdriverIOconfigFile,
                karmaProxy = {};
 
        grunt.loadNpmTasks( 'grunt-banana-checker' );
@@ -13,23 +14,31 @@ module.exports = function ( grunt ) {
        grunt.loadNpmTasks( 'grunt-jsonlint' );
        grunt.loadNpmTasks( 'grunt-karma' );
        grunt.loadNpmTasks( 'grunt-stylelint' );
+       grunt.loadNpmTasks( 'grunt-webdriver' );
 
        karmaProxy[ wgScriptPath ] = {
                target: wgServer + wgScriptPath,
                changeOrigin: true
        };
 
+       if ( process.env.JENKINS_HOME ) {
+               WebdriverIOconfigFile = './tests/selenium/wdio.conf.jenkins.js';
+       } else {
+               WebdriverIOconfigFile = './tests/selenium/wdio.conf.js';
+       }
+
        grunt.initConfig( {
                eslint: {
                        all: [
                                '**/*.js',
                                '!docs/**',
-                               '!tests/**',
                                '!node_modules/**',
                                '!resources/lib/**',
                                '!resources/src/jquery.tipsy/**',
                                '!resources/src/jquery/jquery.farbtastic.js',
                                '!resources/src/mediawiki.libs/**',
+                               // Third-party code of PHPUnit coverage report
+                               '!tests/coverage/**',
                                '!vendor/**',
                                // Explicitly say "**/*.js" here in case of symlinks
                                '!extensions/**/*.js',
@@ -79,11 +88,14 @@ module.exports = function ( grunt ) {
                                } ],
                                logLevel: 'DEBUG',
                                frameworks: [ 'qunit' ],
-                               reporters: [ 'progress' ],
+                               reporters: [ 'mocha' ],
                                singleRun: true,
                                autoWatch: false,
                                // Some tests in extensions don't yield for more than the default 10s (T89075)
-                               browserNoActivityTimeout: 60 * 1000
+                               browserNoActivityTimeout: 60 * 1000,
+                               // Karma requires Same-Origin (or CORS) by default since v1.1.1
+                               // for better stacktraces. But we load the first request from wgServer
+                               crossOriginAttribute: false
                        },
                        main: {
                                browsers: [ 'Chrome' ]
@@ -104,7 +116,15 @@ module.exports = function ( grunt ) {
                                        return require( 'path' ).join( dest, src.replace( 'resources/', '' ) );
                                }
                        }
+               },
+
+               // Configure WebdriverIO task
+               webdriver: {
+                       test: {
+                               configFile: WebdriverIOconfigFile
+                       }
                }
+
        } );
 
        grunt.registerTask( 'assert-mw-env', function () {