好的,所以給出的信息。這是我會做的。假設這是你的開發環境。
使用Mocha和Gulp保持後臺線程運行。
所以這就是你需要做的。
包括在你的package.json
摩卡依賴描述您的活動做一個test.js
文件來完成。 即在這裏運行其他JS文件。 例如我使用以下來測試我的db連接js文件。
var assert = require('assert');
var connect = require('./connect');
var dbInterface = require('./interface');
describe('dbInterface', function() {
//Do Whatever you want to do with the interface.js File }
您需要使用一口有一個後臺進程不斷。
a。在您的依賴中包含gulp
和gulp-mocha
。
在你的gulpfile.js
有它運行任何你需要的不斷,在這裏我讓它看着test.js和interface.js,即在他們的每一個變化重新運行測試。
var gulp = require('gulp');
var mocha = require('gulp-mocha');
gulp.task('watch', function() {
gulp.watch(['./test.js', './interface.js'], ['test']);
});
b。 npm install
c。在單獨的命令窗口中運行npm run watch
並繼續完成日常工作。
希望這會有所幫助。你可以在test.js文件中包含你想要的任何邏輯。並調用您在其中引用的任何JS文件的任何必需函數。
編輯:使用所需的代碼。
你可以讓你當前的腳本這樣,說你的script.js
exports.script = function(req,callback){
//Your Script above.
var spawn = require('child_process').spawn;
// Run node with the GenerateBlob.js file as an argument
var child = spawn('node', ['GenerateBlob.js']);
// Listen for any response from the child:
child.stdout.on('data', function (data) {
var result = data.toString();
});
// Listen for any errors:
child.stderr.on('data', function (data) {
console.log('There was an error: ' + data);
});
});
現在,您test.js內
var assert = require('assert');
var childInterface= require('./script');
describe('testingscript', function() {
it('can run the script successfully', function(done) {
childInterface.script(null, function(error) {
assert.ifError(error);
console.log('wahtever message');
});
});
採取回調,而params的照顧。 這個,如果你運行後,
.\node_modules\.bin\mocha test.js
你可以看到的結果是什麼輸出和技術上你是不是在你的文件上運行node srcipt.js
。
我相信還有其他的方法。如果您發現更容易的一個,請告訴我。
「是的。「 - 你的問題含糊不清,這是唯一可能的答案,你需要提供更多關於你想要做什麼的信息,包括你想要運行節點程序的腳本或程序。 –
你可以使用主管.. – Subburaj
@JeremyJStarcher我已經更新了我的問題 – ameni