forked from AlexanderMoskovkin/qunit-harness
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGulpfile.js
More file actions
124 lines (111 loc) · 3.06 KB
/
Gulpfile.js
File metadata and controls
124 lines (111 loc) · 3.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
var path = require('path');
var del = require('del');
var gulp = require('gulp');
var babel = require('gulp-babel');
var eslint = require('gulp-eslint');
var merge = require('merge-stream');
gulp.task('clean', function (cb) {
del('lib', cb);
});
gulp.task('copy-vendor', ['clean'], function () {
gulp
.src('vendor/**/*.*')
.pipe(gulp.dest('lib/vendor'));
});
gulp.task('build', ['copy-vendor'], function () {
var js = gulp
.src('src/**/*.js')
.pipe(babel());
var templates = gulp
.src('src/**/*.mustache');
return merge(js, templates)
.pipe(gulp.dest('lib'));
});
gulp.task('lint', function () {
return gulp
.src([
'src/**/*.js',
'test/**/*.js',
'Gulpfile.js'
])
.pipe(eslint())
.pipe(eslint.format())
.pipe(eslint.failAfterError());
});
gulp.task('test', ['lint', 'build'], function () {
require('./test/index');
});
gulp.task('saucelabs', ['lint', 'build'], function (done) {
var BROWSERS = [
{
platform: 'Windows 10',
browserName: 'chrome'
},
{
platform: 'Windows 10',
browserName: 'firefox'
},
{
platform: 'Windows 10',
browserName: 'internet explorer',
version: '11.0'
},
{
platform: 'Windows 8',
browserName: 'internet explorer',
version: '10.0'
},
{
platform: 'Windows 7',
browserName: 'internet explorer',
version: '9.0'
},
{
browserName: 'iphone',
platform: 'OS X 10.10',
version: '7.1',
deviceName: 'iPhone Simulator'
},
{
browserName: 'safari',
platform: 'OS X 10.10',
version: '8.0'
},
{
browserName: 'iphone',
platform: 'OS X 10.10',
version: '8.1',
deviceName: 'iPad Simulator'
},
{
browserName: 'android',
platform: 'Linux',
version: '5.1',
deviceName: 'Android Emulator'
}
];
var sauceLabsSettings = {
username: process.env.SAUCELABS_USERNAME,
accessKey: process.env.SAUCELABS_ACCESS_KEY,
build: process.env.TRAVIS_JOB_ID || 'build',
tags: [process.env.TRAVIS_BRANCH || 'master'],
browsers: BROWSERS,
name: 'qunit-harness qunit tests',
timeout: 60
};
var tests = ['/test1-test.js', '/test2-test/index-test.js', '/dir1/test3-test.js']
.map(function (item) {
return path.join(__dirname, '/test/tests/fixtures', item)
});
var server = require('./test/index');
function testsDone (err) {
server.close();
done(err);
}
server
.saucelabs(sauceLabsSettings)
.tests(tests)
.run()
.then(testsDone)
.catch(testsDone);
});