-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathGruntfile.js
105 lines (97 loc) · 4.66 KB
/
Gruntfile.js
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
/*global module, process, require*/
"use strict";
var request = require("request");
module.exports = function(grunt) {
var browsers = [
{platform: "linux", browserName: "chrome", version: "36"},
// {platform: "linux", browserName: "chrome", version: "35"},
{platform: "linux", browserName: "firefox", version: "31"},
// {platform: "linux", browserName: "firefox", version: "30"},
// {platform: "linux", browserName: "firefox", version: "29"},
// {platform: "WIN8.1", browserName: "firefox", version: "31"},
// {platform: "WIN8.1", browserName: "chrome", version: "36"},
// {platform: "WIN8.1", browserName: "internet explorer", version: "11"},
// {platform: "WIN8", browserName: "internet explorer", version: "10"},
// // {platform: "WIN7", browserName: "internet explorer", version: "9"},
{platform: "WIN7", browserName: "internet explorer", version: "10"},
// {platform: "VISTA", browserName: "internet explorer", version: "9"},
// {platform: "OS X 10.8", browserName: "safari", version: "6"},
// {platform: "OS X 10.8", browserName: "chrome", version: "35"},
{platform: "OS X 10.9", browserName: "chrome", version: "35"},
{platform: "OS X 10.9", browserName: "safari", version: "7"},
// {platform: "OS X 10.9", browserName: "firefox", version: "28"},
// {platform: "OS X 10.9", browserName: "firefox", version: "29"},
{platform: "OS X 10.9", browserName: "firefox", version: "30"},
{platform: "OS X 10.9", browserName: "iphone", version: "7.1"},
{platform: "linux", browserName: "android", version: "4.3"},
{platform: "linux", browserName: "android", version: "4.4"}
];
grunt.initConfig({
connect: {
server: {
options: {
base: "",
port: 9999
}
}
},
"saucelabs-jasmine": {
all: {
options: {
urls: ["http://127.0.0.1:9999/jasmine/SpecRunner.html"],
tunnelTimeout: 30,
build: process.env.TRAVIS_JOB_ID,
concurrency: 3,
browsers: browsers,
capabilities: {
browserName: "chrome",
"chromeOptions":{
args: ["--test-type"]
}
},
testname: "sgp4 Unit tests",
tags: ["master"],
sauceConfig: {
"video-upload-on-pass": false,
"idle-timeout": 600,
"max-duration": 1800,
"command-timeout": 600
},
onTestComplete: function(result, cb){
// returning undefined doesn't alter the test result
// but returning true or false does.
// See: https://github.com/axemclion/grunt-saucelabs
var user = process.env.SAUCE_USERNAME;
var pass = process.env.SAUCE_ACCESS_KEY;
request.put({
url: ["https://saucelabs.com/rest/v1", user, "jobs", result.job_id].join("/"),
auth: { user: user, pass: pass },
json: { passed: !result.passed }
}, function (error, response, body) {
if (error) {
cb(error);
} else if (response.statusCode !== 200) {
cb(new Error("Unexpected response status:" + response.statusCode));
} else {
cb(null, !result.passed);
}
body=body; // Shuts up JSHint
});
// if (result.passed === false) {
// cb(null, true);
// } else {
// cb(null,undefined);
// }
}
}
}
},
watch: {}
});
// Loading dependencies
for (var key in grunt.file.readJSON("package.json").devDependencies) {
if (key !== "grunt" && key.indexOf("grunt") === 0) grunt.loadNpmTasks(key);
}
grunt.registerTask("dev", ["connect", "watch"]);
grunt.registerTask("test", ["connect", "saucelabs-jasmine"]);
};