@@ -8,41 +8,47 @@ var util = require('./util');
88
99module.exports = function(gulp, plugins, config) {
1010 return function() {
11- return util.forEachSubDirSequential(
12- config.dest,
13- function(dir) {
14- var testDir = path.join(dir, 'test');
15- var relativeMasterTestFile = 'test/_all_tests.dart';
16- var testFiles = [].slice.call(glob.sync('**/*.server.spec.dart', {
17- cwd: testDir
18- }));
19- if (testFiles.length == 0) {
20- // No test files found
21- return Q.resolve();
22- }
23- var header = ['library _all_tests;', ''];
24- var main = ['main() {'];
25- testFiles.forEach(function(fileName, index) {
26- header.push('import "' + fileName + '" as test_' + index + ';');
27- main.push(' test_' + index + '.main();');
28- });
29- header.push('');
30- main.push('}');
11+ if (config.dir) {
12+ return run(config.dir);
13+ } else {
14+ return util.forEachSubDirSequential(config.dest, run);
15+ }
16+ };
17+
18+ function run(dir) {
19+ var testDir = path.join(dir, 'test');
20+ var relativeMasterTestFile = 'test/_all_tests.dart';
21+ var testFiles = [].slice.call(glob.sync('**/*.server.spec.dart', {
22+ cwd: testDir
23+ }));
24+ if (testFiles.length == 0) {
25+ // No test files found
26+ return Q.resolve();
27+ }
28+ var header = ['library _all_tests;', ''];
29+ var main = ['main() {'];
30+ testFiles.forEach(function(fileName, index) {
31+ header.push('import "' + fileName + '" as test_' + index + ';');
32+ main.push(' test_' + index + '.main();');
33+ });
34+ header.push('');
35+ main.push('}');
3136
32- var absMasterTestFile = path.join(dir, relativeMasterTestFile);
33- fs.writeFileSync(absMasterTestFile, header.concat(main).join('\n'));
37+ var absMasterTestFile = path.join(dir, relativeMasterTestFile);
38+ fs.writeFileSync(absMasterTestFile, header.concat(main).join('\n'));
3439
35- var defer = Q.defer();
36- var done = defer.makeNodeResolver();
37- util.processToPromise(spawn('dart', ['-c', relativeMasterTestFile], {
38- stdio: 'inherit',
39- cwd: dir
40- })).then(
41- function() { done(); },
42- function(error) { done(error); }
43- );
44- return defer.promise;
45- }
40+ var defer = Q.defer();
41+ var done = defer.makeNodeResolver();
42+ console.log('start tests');
43+ util.processToPromise(spawn('dart', ['-c', relativeMasterTestFile], {
44+ stdio: 'inherit',
45+ cwd: dir
46+ })).then(
47+ function() { done(); },
48+ function(error) { done(error); }
4649 );
47- };
50+ return defer.promise.then(function() {
51+ console.log('end tests');
52+ });
53+ }
4854};
0 commit comments