mirror of
https://github.com/videojs/video.js.git
synced 2024-12-04 10:34:51 +02:00
194 lines
4.3 KiB
JavaScript
194 lines
4.3 KiB
JavaScript
module.exports = function(config) {
|
|
// build out a name for browserstack
|
|
// {TRAVIS_BUILD_NUMBER} [{TRAVIS_PULL_REQUEST} {PR_BRANCH}] {TRAVIS_BRANCH}
|
|
var browserstackName = process.env.TRAVIS_BUILD_NUMBER;
|
|
|
|
if (process.env.TRAVIS_PULL_REQUEST !== 'false') {
|
|
browserstackName += ' ' + process.env.TRAVIS_PULL_REQUEST + ' ' + process.env.TRAVIS_PULL_REQUEST_BRANCH;
|
|
}
|
|
|
|
browserstackName += ' ' + process.env.TRAVIS_BRANCH;
|
|
|
|
// Creating settings object first so we can modify based on travis
|
|
var settings = {
|
|
basePath: '',
|
|
|
|
frameworks: ['browserify', 'qunit', 'detectBrowsers'],
|
|
autoWatch: false,
|
|
singleRun: true,
|
|
|
|
// Compling tests here
|
|
files: [
|
|
'../build/temp/video-js.css',
|
|
'../test/globals-shim.js',
|
|
'../test/unit/**/*.js',
|
|
'../build/temp/browserify.js',
|
|
'../build/temp/webpack.js',
|
|
{ pattern: '../src/**/*.js', watched: true, included: false, served: false }
|
|
],
|
|
|
|
// Using precompiled tests
|
|
// files: [
|
|
// '../build/temp/video-js.css',
|
|
// '../build/temp/tests.js'
|
|
// ],
|
|
|
|
preprocessors: {
|
|
'../test/**/*.js': [ 'browserify' ]
|
|
},
|
|
|
|
browserify: {
|
|
debug: true,
|
|
plugin: ['proxyquireify/plugin'],
|
|
transform: ['babelify']
|
|
},
|
|
|
|
plugins: [
|
|
'karma-qunit',
|
|
'karma-chrome-launcher',
|
|
'karma-firefox-launcher',
|
|
'karma-ie-launcher',
|
|
'karma-opera-launcher',
|
|
'karma-safari-launcher',
|
|
'karma-safaritechpreview-launcher',
|
|
'karma-browserstack-launcher',
|
|
'karma-browserify',
|
|
'karma-coverage',
|
|
'karma-detect-browsers',
|
|
],
|
|
|
|
detectBrowsers: {
|
|
enabled: false,
|
|
usePhantomJS: false
|
|
},
|
|
|
|
reporters: ['dots'],
|
|
|
|
// web server port
|
|
port: 9876,
|
|
|
|
// cli runner port
|
|
runnerPort: 9100,
|
|
colors: true,
|
|
logLevel: config.LOG_INFO,
|
|
captureTimeout: 300000,
|
|
browserNoActivityTimeout: 300000,
|
|
browserDisconnectTimeout: 300000,
|
|
browserDisconnectTolerance: 3,
|
|
|
|
browserStack: {
|
|
project: 'Video.js',
|
|
name: browserstackName,
|
|
build: browserstackName,
|
|
pollingTimeout: 30000,
|
|
captureTimeout: 600,
|
|
timeout: 600
|
|
},
|
|
customLaunchers: getCustomLaunchers(),
|
|
|
|
// The HTML reporter seems to be busted right now, so we're just using text in the meantime
|
|
// along with the summary after the test run.
|
|
coverageReporter: {
|
|
reporters: [
|
|
{
|
|
type: 'text',
|
|
dir: 'coverage/',
|
|
file: 'coverage.txt'
|
|
},
|
|
{
|
|
type: 'lcovonly',
|
|
dir: 'coverage/',
|
|
subdir: '.'
|
|
},
|
|
{ type: 'text-summary' }
|
|
]
|
|
},
|
|
|
|
// make QUnit show the UI in karma runs
|
|
client: {
|
|
clearContext: false,
|
|
qunit: {
|
|
showUI: true,
|
|
testTimeout: 5000
|
|
}
|
|
}
|
|
};
|
|
|
|
// Coverage reporting
|
|
// Coverage is enabled by passing the flag --coverage to npm test
|
|
var coverageFlag = process.env.npm_config_coverage;
|
|
var reportCoverage = process.env.TRAVIS || coverageFlag;
|
|
if (reportCoverage) {
|
|
settings.browserify.transform.push('browserify-istanbul');
|
|
settings.reporters.push('coverage');
|
|
}
|
|
|
|
if (process.env.TRAVIS) {
|
|
if (process.env.BROWSER_STACK_USERNAME) {
|
|
settings.browsers = [
|
|
'chrome_bs',
|
|
'firefox_bs',
|
|
'safari_bs',
|
|
'edge_bs',
|
|
'ie11_bs'
|
|
];
|
|
} else {
|
|
settings.browsers = ['chrome_travis'];
|
|
}
|
|
}
|
|
|
|
config.set(settings);
|
|
};
|
|
|
|
function getCustomLaunchers(){
|
|
return {
|
|
chrome_travis: {
|
|
base: 'Chrome',
|
|
flags: ['--no-sandbox']
|
|
},
|
|
|
|
chrome_bs: {
|
|
base: 'BrowserStack',
|
|
browser: 'chrome',
|
|
os: 'Windows',
|
|
os_version: '10'
|
|
},
|
|
|
|
firefox_bs: {
|
|
base: 'BrowserStack',
|
|
browser: 'firefox',
|
|
os: 'Windows',
|
|
os_version: '10'
|
|
},
|
|
|
|
safari_bs: {
|
|
base: 'BrowserStack',
|
|
browser: 'safari',
|
|
os: 'OS X',
|
|
os_version: 'High Sierra'
|
|
},
|
|
|
|
safari9_bs: {
|
|
base: 'BrowserStack',
|
|
browser: 'safari',
|
|
os: 'OS X',
|
|
os_version: 'El Capitan'
|
|
},
|
|
|
|
edge_bs: {
|
|
base: 'BrowserStack',
|
|
browser: 'edge',
|
|
os: 'Windows',
|
|
os_version: '10'
|
|
},
|
|
|
|
ie11_bs: {
|
|
base: 'BrowserStack',
|
|
browser: 'ie',
|
|
browser_version: '11',
|
|
os: 'Windows',
|
|
os_version: '10'
|
|
}
|
|
};
|
|
}
|