我有以下NodeJS脚本,它会轮询Web自动化任务的地址并在收到后执行。轮询和解析响应很好,但我不确定如何在res.on()
方法中同步触发mocha测试运行器:
var express = require('express');
//...
app.set('port', process.env.PORT || 3000);
//...
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
app.get('/users', user.list);
var getTestTaskFromQueue = {
host: 'remotehost',
port: 3000,
path: '/met/my/test',
method: 'GET'
};
setInterval(function() {
var reqGet = http.request(getTestTaskFromQueue, function (res) {
var content;
res.on('data', function (chunk){
content += chunk;
});
res.on('end', function () {
content = JSON.parse(content.substring(9, content.length));
console.info("\nReceived Task:\n");
//run one test via mocha here
});
});
reqGet.end();
reqGet.on('error', function (e) {
console.error(e);
});
}, 10000);
目前,测试运行器从CLI运行良好:
mocha test/folders/test_script.js --browser "firefox" --param1 foo
我试图在mocha执行开始时停止setInterval循环并从回调中重新启动它,但我应该如何执行实际的mocha测试 - 从同一个脚本内部或通过子进程与CLI交谈?
答案 0 :(得分:1)
一旦您的环境准备就绪,您可以致电mocha.run()
开始测试。
但是,您搜索的内容可能是 stub 和 mock 对象,以防止您的测试与外部源进行交互。