强制npmtesting来创build新的\新的input副本

test/ ├── TestOne.js └── TestTwo.js 

说, TestOne.js是:

这个testing用例从InputOne.json文件中读取, InputOne.json已有3条logging的对象添加一条logging。

 describe('Add Items', function () { it('Should add items', function () { var input = require('./data/InputOne'); var obj = new Department(); var result = obj.AddDept(input); result.should.have.length(4); }); }); 

说, TestTwo.js是:

这个testing用例从文件InputOne.json读取并计算元素的数量

 describe('Count Items', function () { it('Should count items length', function () { var input = require('./data/InputOne'); var obj = new Department(); var result = obj.CountDept(input); result.should.have.length(3); }); }); 

问题:

这两个testing用例都使用相同的文件作为input。 如果我使用摩卡运行testing用例,则testing用例都会通过

mocha TestOne //通行证

mocha TestTwo //通行证

如果我说npm test (运行所有的testing用例),我会得到错误,因为TestOne文件中的testing用例已经修改了input文件。 如何让testing用例不要cachinginput文件(或强制testing用例创build自己的input文件副本)

为确保文件始终以磁盘当前forms加载,请使用fs加载它:

 var fs = require('fs'); var input = fs.readFileSync('./data/InputOne'); input = JSON.parse(input); 

http://nodejs.org/api/fs.html#fs_fs_readfilesync_filename_options