Hi, I want to setup CI so that when I merge my project it will automatically build, unit test and deploy.
I’m a bit confused as to how one might do this with say, jenkins, because of the way the testing framework uses telnet.
some of you people must’ve done this : what did you do to get the test results back from telnet?
i.e. https://github.com/rokudev/unit-testing-framework/blob/master/docs/unit-test-framework.md
open socket and run unit test and trim the result that you need by node.js from jenkins and added time out
var net = require('net');
var fs = require('fs');
var port = 8085
var host = process.argv[2]
var fileName = process.argv[3]
var isLogging = false
var socket = net.connect(port, host, function() {
console.log('[[ socket start ]] at ', new Date());
socket.setTimeout(1000*60*2)
})
socket.on("error", function(err) {
console.log("Error");
console.log(err);
})
socket.on("close", function(err) {
if (isLogging) {
console.log("Connection closed");
} else {
console.log("Connection retry");
socket.connect(port, host)
}
})
socket.on("data", function (data) {
string = data.toString()
if (!isLogging && string.includes("TEST START")){
isLogging = true
}
if (isLogging) {
if (string.includes("START TEST REPORT")) {
string = "[START TEST REPORT]\n" + string.split("[START TEST REPORT]")[1]
fs.writeFileSync(fileName, string);
} else {
fs.appendFileSync(fileName, string);
}
}
if (isLogging && string.includes("RESULT:")) {
isLogging = false
console.log('- RESULT:' + string.split("RESULT:")[1]);
console.log('[[ socket end ]] at ', new Date());
socket.end();
socket.destroy();
}
})
socket.on("timeout", function(err) {
console.log("Connection closed");
console.log('- unit Test Time out, please check the connection, either slowness or broken script');
console.log('[[ socket end ]] at ', new Date());
socket.end();
socket.destroy();
})