Use a proxy with firefox to avoid loading external files in the examples test.

This commit is contained in:
David Manthey 2017-01-03 14:41:35 -05:00
parent 9bf511b414
commit 04f04cf0a0
8 changed files with 90 additions and 72 deletions

View File

@ -183,50 +183,62 @@ var notes_middleware = function (config) {
};
};
module.exports = {
autoWatch: false,
files: [
test_case,
{pattern: 'tests/data/**/*', included: false},
{pattern: 'tests/cases/**/*.js', included: false, served: false, watched: true},
{pattern: 'tests/gl-cases/**/*.js', included: false, served: false, watched: true},
{pattern: 'tests/example-cases/**/*.js', included: false, served: false, watched: true},
{pattern: 'dist/data/**/*', included: false},
{pattern: 'dist/examples/**/*', included: false}
],
proxies: {
'/testdata/': '/base/tests/data/',
'/data/': '/base/dist/data/',
'/examples/': '/base/dist/examples/'
},
browsers: [
'PhantomJS'
],
browserNoActivityTimeout: 30000,
reporters: [
'progress',
'kjhtml'
],
middleware: [
'notes'
],
plugins: [
{'middleware:notes': ['factory', notes_middleware]},
'karma-*'
],
preprocessors: {},
frameworks: [
'jasmine', 'sinon'
],
webpack: {
cache: true,
devtool: 'inline-source-map',
module: {
loaders: webpack_config.module.loaders
module.exports = function (config) {
var newConfig = {
autoWatch: false,
files: [
test_case,
{pattern: 'tests/data/**/*', included: false},
{pattern: 'tests/cases/**/*.js', included: false, served: false, watched: true},
{pattern: 'tests/gl-cases/**/*.js', included: false, served: false, watched: true},
{pattern: 'tests/example-cases/**/*.js', included: false, served: false, watched: true},
{pattern: 'dist/data/**/*', included: false},
{pattern: 'dist/examples/**/*', included: false}
],
proxies: {
'/testdata/': '/base/tests/data/',
'/data/': '/base/dist/data/',
'/examples/': '/base/dist/examples/'
},
resolve: webpack_config.resolve,
plugins: webpack_config.exposed_plugins
}
};
browsers: [
'PhantomJS'
],
customLaunchers: {
FirefoxWithProxy: {
base: 'Firefox',
prefs: {
'network.proxy.type': 2,
'network.proxy.autoconfig_url': config.protocol + '//' + config.hostname + ':' + config.port + '/testdata/proxy-for-tests.pac'
}
}
},
browserNoActivityTimeout: 30000,
reporters: [
'progress',
'kjhtml'
],
middleware: [
'notes'
],
plugins: [
{'middleware:notes': ['factory', notes_middleware]},
'karma-*'
],
preprocessors: {},
frameworks: [
'jasmine', 'sinon'
],
webpack: {
cache: true,
devtool: 'inline-source-map',
module: {
loaders: webpack_config.module.loaders
},
resolve: webpack_config.resolve,
plugins: webpack_config.exposed_plugins
}
};
newConfig.preprocessors[test_case] = ['webpack', 'sourcemap'];
module.exports.preprocessors[test_case] = ['webpack', 'sourcemap'];
return newConfig;
};

View File

@ -2,7 +2,6 @@
// with coverage support.
var path = require('path');
var karma_config = require('./karma-base');
/**
* Return URL friendly browser string
@ -11,24 +10,26 @@ function browser(b) {
return b.toLowerCase().split(/[ /-]/)[0];
}
karma_config.reporters = ['progress', 'coverage'];
karma_config.coverageReporter = {
reporters: [
{type: 'html', dir: 'dist/coverage/', subdir: browser},
{type: 'cobertura', dir: 'dist/cobertura/', file: 'coverage.xml', subdir: browser},
{type: 'json', dir: 'dist/coverage/json/', subdir: browser},
{type: 'lcovonly', dir: 'lcov', subdir: browser},
{type: 'text'}
]
};
karma_config.webpack.module.preLoaders = [
{
test: /\.js$/,
include: path.resolve('src/'),
loader: 'istanbul-instrumenter'
}
];
module.exports = function (config) {
var karma_config = require('./karma-base')(config);
karma_config.reporters = ['progress', 'coverage'];
karma_config.coverageReporter = {
reporters: [
{type: 'html', dir: 'dist/coverage/', subdir: browser},
{type: 'cobertura', dir: 'dist/cobertura/', file: 'coverage.xml', subdir: browser},
{type: 'json', dir: 'dist/coverage/json/', subdir: browser},
{type: 'lcovonly', dir: 'lcov', subdir: browser},
{type: 'text'}
]
};
karma_config.webpack.module.preLoaders = [
{
test: /\.js$/,
include: path.resolve('src/'),
loader: 'istanbul-instrumenter'
}
];
config.set(karma_config);
};

View File

@ -1,5 +1,3 @@
var karma_config = require('./karma-base');
module.exports = function (config) {
config.set(karma_config);
config.set(require('./karma-base')(config));
};

View File

@ -82,9 +82,9 @@
"start": "karma start karma.conf.js",
"ci": "GEOJS_TEST_CASE=tests/test-unit.js karma start karma-cov.conf.js --single-run --browsers PhantomJS",
"ffci": "GEOJS_TEST_CASE=tests/test-gl.js karma start karma-cov.conf.js --single-run --browsers Firefox",
"examplesci": "GEOJS_TEST_CASE=tests/test-examples.js karma start karma-cov.conf.js --single-run --browsers Firefox",
"examplesci": "GEOJS_TEST_CASE=tests/test-examples.js karma start karma-cov.conf.js --single-run --browsers FirefoxWithProxy",
"test-webgl": "GEOJS_TEST_CASE=tests/test-gl.js xvfb-run -s '-ac -screen 0 1280x1024x24' karma start karma-cov.conf.js --single-run --browsers Firefox",
"test-examples": "GEOJS_TEST_CASE=tests/test-examples.js xvfb-run -s '-ac -screen 0 1280x1024x24' karma start karma-cov.conf.js --single-run --browsers Firefox",
"test-examples": "GEOJS_TEST_CASE=tests/test-examples.js xvfb-run -s '-ac -screen 0 1280x1024x24' karma start karma-cov.conf.js --single-run --browsers FirefoxWithProxy",
"codecov": "cat lcov/*/lcov.info | codecov",
"combine-coverage": "istanbul-combine -d dist/cobertura -r cobertura 'dist/coverage/json/**/coverage-final.json'",
"examples": "webpack-dev-server --config webpack-examples.config.js --host ${HOST-127.0.0.1} --port ${PORT-8082} --content-base dist/",

View File

@ -1 +1 @@
3a85dd50f321e7ac897b416eade4a5ab
2f4ea11110deac8f5de053c49d09ce1e

View File

@ -1 +1 @@
https://data.kitware.com/api/v1/file/586ba6ed8d777f05f44a57d1/download
https://data.kitware.com/api/v1/file/586bfea38d777f05f44a5c6f/download

View File

@ -0,0 +1,7 @@
function FindProxyForURL(url, host) {
// Don't serve certain remote addresses
if (dnsDomainIs(host, "fonts.googleapis.com")) {
return "PROXY http://192.0.2.0";
}
return "DIRECT";
}

View File

@ -1,5 +1,5 @@
/**
* Entry point for all tests in ./gl-cases/*
* Entry point for all tests in ./example-cases/*
* This is here to prevent webpack from creating a seperate bundle for each
* test case. See: https://github.com/webpack/karma-webpack/issues/23
*/