Test browsers directly on Travis

Travis provides some browsers at least, so let's test those directly
without having to go through Sauce Labs.
This commit is contained in:
Pierre Ossman 2020-06-03 19:22:21 +02:00
parent 0e37a3f83a
commit d2e8461883
3 changed files with 41 additions and 16 deletions

View File

@ -7,17 +7,17 @@ node_js:
- lts/* - lts/*
env: env:
matrix: matrix:
- TEST_BROWSER_NAME=chrome TEST_BROWSER_OS='Windows 10' - USE_SAUCE=1 TEST_BROWSER_NAME=chrome TEST_BROWSER_OS='Windows 10'
# FIXME Skip tests in Linux since Sauce Labs browser versions are ancient. # FIXME Skip tests in Linux since Sauce Labs browser versions are ancient.
# - TEST_BROWSER_NAME=chrome TEST_BROWSER_OS='Linux' # - USE_SAUCE=1 TEST_BROWSER_NAME=chrome TEST_BROWSER_OS='Linux'
- TEST_BROWSER_NAME=chrome TEST_BROWSER_OS='OS X 10.11' - USE_SAUCE=1 TEST_BROWSER_NAME=chrome TEST_BROWSER_OS='OS X 10.11'
- TEST_BROWSER_NAME=firefox TEST_BROWSER_OS='Windows 10' - USE_SAUCE=1 TEST_BROWSER_NAME=firefox TEST_BROWSER_OS='Windows 10'
# - TEST_BROWSER_NAME=firefox TEST_BROWSER_OS='Linux' # - USE_SAUCE=1 TEST_BROWSER_NAME=firefox TEST_BROWSER_OS='Linux'
- TEST_BROWSER_NAME=firefox TEST_BROWSER_OS='OS X 10.11' - USE_SAUCE=1 TEST_BROWSER_NAME=firefox TEST_BROWSER_OS='OS X 10.11'
- TEST_BROWSER_NAME='internet explorer' TEST_BROWSER_OS='Windows 10' - USE_SAUCE=1 TEST_BROWSER_NAME='internet explorer' TEST_BROWSER_OS='Windows 10'
- TEST_BROWSER_NAME='internet explorer' TEST_BROWSER_OS='Windows 7' - USE_SAUCE=1 TEST_BROWSER_NAME='internet explorer' TEST_BROWSER_OS='Windows 7'
- TEST_BROWSER_NAME=microsoftedge TEST_BROWSER_OS='Windows 10' - USE_SAUCE=1 TEST_BROWSER_NAME=microsoftedge TEST_BROWSER_OS='Windows 10'
- TEST_BROWSER_NAME=safari TEST_BROWSER_OS='OS X 10.13' - USE_SAUCE=1 TEST_BROWSER_NAME=safari TEST_BROWSER_OS='OS X 10.13'
before_script: npm install -g karma-cli before_script: npm install -g karma-cli
addons: addons:
sauce_connect: sauce_connect:
@ -41,6 +41,29 @@ jobs:
addons: addons:
before_script: before_script:
script: git ls-tree --name-only -r HEAD | grep -E "[.](html|css)$" | xargs ./utils/validate script: git ls-tree --name-only -r HEAD | grep -E "[.](html|css)$" | xargs ./utils/validate
- stage: test
env:
- TEST_BROWSER_NAME=FirefoxHeadless
addons:
sauce_connect: false
before_script:
script: npm run test
-
env:
- TEST_BROWSER_NAME=ChromeHeadless
addons:
sauce_connect: false
chrome: stable
before_script:
script: npm run test
-
os: osx
env:
- TEST_BROWSER_NAME=Safari
addons:
sauce_connect: false
before_script:
script: npm run test
- stage: deploy - stage: deploy
env: env:
addons: addons:

View File

@ -5,12 +5,11 @@ module.exports = (config) => {
let browsers = []; let browsers = [];
let useSauce = false; let useSauce = false;
// use Sauce when running on Travis if (process.env.USE_SAUCE) {
if (process.env.TRAVIS_JOB_NUMBER) {
useSauce = true; useSauce = true;
} }
if (useSauce && process.env.TEST_BROWSER_NAME && process.env.TEST_BROWSER_NAME != 'PhantomJS') { if (useSauce) {
const names = process.env.TEST_BROWSER_NAME.split(','); const names = process.env.TEST_BROWSER_NAME.split(',');
const platforms = process.env.TEST_BROWSER_OS.split(','); const platforms = process.env.TEST_BROWSER_OS.split(',');
const versions = process.env.TEST_BROWSER_VERSION const versions = process.env.TEST_BROWSER_VERSION
@ -40,9 +39,9 @@ module.exports = (config) => {
browsers = Object.keys(customLaunchers); browsers = Object.keys(customLaunchers);
} else { } else {
useSauce = false; if (process.env.TEST_BROWSER_NAME) {
//browsers = ['PhantomJS']; browsers = process.env.TEST_BROWSER_NAME.split(',');
browsers = []; }
} }
const my_conf = { const my_conf = {

View File

@ -60,8 +60,11 @@
"jsdom": "*", "jsdom": "*",
"karma": "*", "karma": "*",
"karma-mocha": "*", "karma-mocha": "*",
"karma-chrome-launcher": "*",
"karma-firefox-launcher": "*",
"karma-mocha-reporter": "*", "karma-mocha-reporter": "*",
"karma-sauce-launcher": "*", "karma-sauce-launcher": "*",
"karma-safari-launcher": "*",
"karma-sinon-chai": "*", "karma-sinon-chai": "*",
"mocha": "*", "mocha": "*",
"node-getopt": "*", "node-getopt": "*",