var wgServer = process.env.MW_SERVER,
wgScriptPath = process.env.MW_SCRIPT_PATH,
+ WebdriverIOconfigFile,
karmaProxy = {};
grunt.loadNpmTasks( 'grunt-banana-checker' );
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',
options: {
syntax: 'less'
},
- src: '{resources/src/*,mw-config/**}/*.{css,less}'
+ src: '{resources/src,mw-config}/**/*.{css,less}'
},
watch: {
files: [
} ],
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' ]
return require( 'path' ).join( dest, src.replace( 'resources/', '' ) );
}
}
+ },
+
+ // Configure WebdriverIO task
+ webdriver: {
+ test: {
+ configFile: WebdriverIOconfigFile
+ }
}
+
} );
grunt.registerTask( 'assert-mw-env', function () {