强制npm测试以制作新的\ new输入副本

时间:2014-08-05 08:05:21

标签: javascript node.js jasmine mocha

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

说,TestOne.js是:

此测试用例从文件InputOne.json读取,并将一条记录添加到已有3条记录的对象中。

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是:

此测试用例从文件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);
      });
   });

问题:

两个测试用例都使用相同的文件作为输入。如果我使用mocha运行测试用例,则测试用例都会通过

mocha TestOne //通过

mocha TestTwo //通过

如果我说npm test(运行所有测试用例)我得到错误,因为TestOne文件中的测试用例修改了输入文件。我怎样才能使测试用例不缓存输入文件(或强制测试用例来创建自己的输入文件副本)

1 个答案:

答案 0 :(得分:0)

要确保文件始终以磁盘的当前形式加载,请使用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