2013-10-09 19 views
5

我有一个现有的测试套件,使用摩卡,require和jasmine在node.js中正常运行,测试通过psake powershell脚本运行。我试图增加测试覆盖率,所以运行单元测试,而不是做的:我怎么能得到伊斯坦布尔与节点,摩卡,茉莉花和jsmine工作

节点unitTest.js

我做

伊斯坦布尔盖unitTest.js

这似乎工作但只给我关于unitTest.js本身的覆盖信息,但不包含项目中使用的其他任何实际JavaScript文件。我猜这是因为require/mocha组合,所以它不知道我使用的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); 
      }); 
     }); 
    } 
}); 

});

+1

使用参数--hook - 运行 - 在上下文中使其正常工作 – user2576666

+1

您能否让它成为答案? – gcedo

回答

-1

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

这对使用AMD(require.js)的项目特别有用。它在底层使用伊斯坦布尔,并有一个代理服务器,可以自动处理您的代码。对于你正在尝试做的事情来说,这是非常光滑的。

0

@ user2576666回答在评论的问题:

“使用参数--hook - 运行 - 在上下文使得它正常工作”

相关问题