mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
Fixing run script to know about its directory
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
DONE = false;
|
||||
|
||||
(function () {
|
||||
|
||||
var getName = function (result) {
|
||||
return (result.server ? "S: " : "C: ") +
|
||||
result.groupPath.join(" - ") + " - " + result.test;
|
||||
@@ -16,22 +14,15 @@ var expected = 0;
|
||||
var resultSet = {};
|
||||
var toReport = [];
|
||||
|
||||
var url = null;
|
||||
if (Meteor.settings &&
|
||||
Meteor.settings.public &&
|
||||
!_.isEmpty(Meteor.settings.public.runId) &&
|
||||
!_.isEmpty(Meteor.settings.public.reportTo)) {
|
||||
url = Meteor.settings.public.reportTo +
|
||||
"/report/" +
|
||||
Meteor.settings.public.runId;
|
||||
}
|
||||
|
||||
var hrefPath = document.location.href.split("/");
|
||||
var platform = hrefPath.length && hrefPath[hrefPath.length - 1];
|
||||
if (_.isEmpty(platform))
|
||||
platform = "local";
|
||||
var doReport = Meteor &&
|
||||
Meteor.settings.public &&
|
||||
Meteor.settings.public.runId;
|
||||
var report = function (name, last) {
|
||||
if (url && url !== "") {
|
||||
if (doReport) {
|
||||
var data = {
|
||||
run_id: Meteor.settings.public.runId,
|
||||
testPath: resultSet[name].testPath,
|
||||
@@ -57,83 +48,81 @@ var sendReports = function (callback) {
|
||||
if (!callback)
|
||||
callback = function () {};
|
||||
toReport = [];
|
||||
if (url)
|
||||
Meteor.call("report", url, reports, callback);
|
||||
if (doReport)
|
||||
Meteor.call("report", reports, callback);
|
||||
else
|
||||
callback();
|
||||
};
|
||||
Meteor.startup(function () {
|
||||
setTimeout(sendReports, 500);
|
||||
setInterval(sendReports, 2000);
|
||||
setTimeout(sendReports, 500);
|
||||
setInterval(sendReports, 2000);
|
||||
|
||||
Meteor._runTestsEverywhere(
|
||||
function (results) {
|
||||
var name = getName(results);
|
||||
if (!_.has(resultSet, name)) {
|
||||
var testPath = EJSON.clone(results.groupPath);
|
||||
testPath.push(results.test);
|
||||
resultSet[name] = {
|
||||
name: name,
|
||||
status: "PENDING",
|
||||
events: [],
|
||||
server: !!results.server,
|
||||
testPath: testPath
|
||||
};
|
||||
report(name, false);
|
||||
}
|
||||
_.each(results.events, function (event) {
|
||||
resultSet[name].events.push(event);
|
||||
switch (event.type) {
|
||||
case "ok":
|
||||
break;
|
||||
case "expected_fail":
|
||||
if (resultSet[name].status !== "FAIL")
|
||||
resultSet[name].status = "EXPECTED";
|
||||
break;
|
||||
case "finish":
|
||||
switch (resultSet[name].status) {
|
||||
case "OK":
|
||||
Meteor._runTestsEverywhere(
|
||||
function (results) {
|
||||
var name = getName(results);
|
||||
if (!_.has(resultSet, name)) {
|
||||
var testPath = EJSON.clone(results.groupPath);
|
||||
testPath.push(results.test);
|
||||
resultSet[name] = {
|
||||
name: name,
|
||||
status: "PENDING",
|
||||
events: [],
|
||||
server: !!results.server,
|
||||
testPath: testPath
|
||||
};
|
||||
report(name, false);
|
||||
}
|
||||
_.each(results.events, function (event) {
|
||||
resultSet[name].events.push(event);
|
||||
switch (event.type) {
|
||||
case "ok":
|
||||
break;
|
||||
case "PENDING":
|
||||
resultSet[name].status = "OK";
|
||||
report(name, true);
|
||||
console.log(name, ":", "OK");
|
||||
passed++;
|
||||
case "expected_fail":
|
||||
if (resultSet[name].status !== "FAIL")
|
||||
resultSet[name].status = "EXPECTED";
|
||||
break;
|
||||
case "EXPECTED":
|
||||
report(name, true);
|
||||
console.log(name, ":", "EXPECTED FAILURE");
|
||||
expected++;
|
||||
break;
|
||||
case "FAIL":
|
||||
failed++;
|
||||
report(name, true);
|
||||
console.log(name, ":", "!!!!!!!!! FAIL !!!!!!!!!!!");
|
||||
console.log(JSON.stringify(resultSet[name].info));
|
||||
case "finish":
|
||||
switch (resultSet[name].status) {
|
||||
case "OK":
|
||||
break;
|
||||
case "PENDING":
|
||||
resultSet[name].status = "OK";
|
||||
report(name, true);
|
||||
console.log(name, ":", "OK");
|
||||
passed++;
|
||||
break;
|
||||
case "EXPECTED":
|
||||
report(name, true);
|
||||
console.log(name, ":", "EXPECTED FAILURE");
|
||||
expected++;
|
||||
break;
|
||||
case "FAIL":
|
||||
failed++;
|
||||
report(name, true);
|
||||
console.log(name, ":", "!!!!!!!!! FAIL !!!!!!!!!!!");
|
||||
console.log(JSON.stringify(resultSet[name].info));
|
||||
break;
|
||||
default:
|
||||
console.log(name, ": unknown state for the test to be in");
|
||||
}
|
||||
finished++;
|
||||
break;
|
||||
default:
|
||||
console.log(name, ": unknown state for the test to be in");
|
||||
resultSet[name].status = "FAIL";
|
||||
resultSet[name].info = results;
|
||||
break;
|
||||
}
|
||||
finished++;
|
||||
break;
|
||||
default:
|
||||
resultSet[name].status = "FAIL";
|
||||
resultSet[name].info = results;
|
||||
break;
|
||||
}
|
||||
});
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
function () {
|
||||
console.log("passed/expected/failed/total", passed, "/", expected, "/", failed, "/", _.size(resultSet));
|
||||
sendReports(function () {
|
||||
console.log("Waiting 3s for any last reports to get sent out");
|
||||
setTimeout(function () {
|
||||
DONE = true;
|
||||
}, 3000);
|
||||
});
|
||||
},
|
||||
["tinytest"]);
|
||||
function () {
|
||||
console.log("passed/expected/failed/total", passed, "/", expected, "/", failed, "/", _.size(resultSet));
|
||||
sendReports(function () {
|
||||
console.log("Waiting 3s for any last reports to get sent out");
|
||||
setTimeout(function () {
|
||||
DONE = true;
|
||||
}, 3000);
|
||||
});
|
||||
},
|
||||
["tinytest"]);
|
||||
});
|
||||
|
||||
})();
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
var url = null;
|
||||
if (Meteor.settings &&
|
||||
Meteor.settings.public &&
|
||||
!_.isEmpty(Meteor.settings.public.runId) &&
|
||||
!_.isEmpty(Meteor.settings.public.reportTo)) {
|
||||
url = Meteor.settings.public.reportTo +
|
||||
"/report/" +
|
||||
Meteor.settings.public.runId;
|
||||
}
|
||||
|
||||
Meteor.methods({
|
||||
report: function (url, reports) {
|
||||
report: function (reports) {
|
||||
Meteor.http.post(url, {
|
||||
data: reports
|
||||
});
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd `dirname $0`
|
||||
cd ../..
|
||||
export METEOR_HOME=`pwd`
|
||||
|
||||
#eventually this should be the new engine way to run tests
|
||||
cd $METEOR_HOME/packages
|
||||
|
||||
|
||||
Reference in New Issue
Block a user