forked from angular/protractor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
runnerCli.js
64 lines (57 loc) · 1.62 KB
/
runnerCli.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
/**
* This serves as the main function for starting a test run that has been
* requested by the launcher.
*/
var ConfigParser = require('./configParser');
var Runner = require('./runner');
var log = require('./logger');
process.on('message', function(m) {
switch (m.command) {
case 'run':
if (!m.capabilities) {
throw new Error('Run message missing capabilities');
}
// Merge in config file options.
var configParser = new ConfigParser();
if (m.configFile) {
configParser.addFileConfig(m.configFile);
}
if (m.additionalConfig) {
configParser.addConfig(m.additionalConfig);
}
var config = configParser.getConfig();
log.set(config);
// Grab capabilities to run from launcher.
config.capabilities = m.capabilities;
//Get specs to be executed by this runner
config.specs = m.specs;
// Launch test run.
var runner = new Runner(config);
// Pipe events back to the launcher.
runner.on('testPass', function() {
process.send({
event: 'testPass'
});
});
runner.on('testFail', function() {
process.send({
event: 'testFail'
});
});
runner.on('testsDone', function(results) {
process.send({
event: 'testsDone',
results: results
});
});
runner.run().then(function(exitCode) {
process.exit(exitCode);
}).catch (function(err) {
log.puts(err.message);
process.exit(1);
});
break;
default:
throw new Error('command ' + m.command + ' is invalid');
}
});