我怎么能得到伊斯坦布尔与节点,摩卡,茉莉花和js要求

我有一个现有的testing套件,使用mocha,require和jasmine在node.js中正常运行,testing通过psake powershell脚本运行。 我正在尝试添加testing覆盖率,所以要运行unit testing而不是:

节点unitTest.js

我在做

伊斯坦布尔封面unitTest.js

这似乎工作,但只给了我关于unitTest.js本身的覆盖范围信息,但没有在项目中使用任何其他实际的JavaScript文件。 我猜这是因为要求/摩卡的组合,所以它不知道我使用的js文件。

我尝试手动将所有文件作为代码覆盖之前的一个步骤,并在复制/检测的文件上运行相同的命令,但得到相同的结果。 有关使这项工作的任何提示?

这是unitTest.js的最后一部分

requirejs(['mocha'], function(Mocha) { var mocha = new Mocha({reporter: (process.env['TEAMCITY_VERSION'] ? 'teamcity' : 'spec')}); // Hack to establish the global variables (sigh) mocha.suite.emit('pre-require', global, __filename, mocha); fswalk(__dirname, function(err, results) { if (err) console.warn(err); else { var testName = process.argv[2] || ""; console.log("testName: " + testName); var inclusionSuffixes = [testName + '.test.js']; var exclusionSuffixes = ['.integration.test.js']; var tests = _.filter(results, function (result) { var test = function (suffix) { return result.indexOf(suffix) == result.length - suffix.length; }; return _.any(inclusionSuffixes, test) && !_.any(exclusionSuffixes, test); }); requirejs(tests, function () { mocha.run(function(failures) { process.exit(failures); }); }); } }); 

});

@ user2576666在评论中回答了这个问题:

“使用参数-hook-run-in-context使其正常工作”

尝试哄这些不同的部分自己一起工作的替代方法是使用实习生 。

这对于使用AMD(require.js)的项目尤其有意义。 它在底层使用伊斯坦布尔,并有一个代理服务器,自动检测您的代码。 这是一个非常光滑的设置为你正在做的事情。