繁体   English   中英

设置业力以测试node.js模块吗?

[英]Setup karma to test a node.js module?

我正在开发Node.js模块,并且想使用Karma在工作时对其进行自动测试。

在我的配置文件中,我将其设置为:

// list of files / patterns to load in the browser
files: [
  './index.js',
  './test/indexSpecs.js'
],

显然,由于浏览器文件中未包含Node.js,因此出现此错误:

Uncaught ReferenceError: require is not defined

如果我添加:

files: [
  './node_modules/**/*.js',
  './index.js',
  './test/indexSpecs.js'
],

我遇到很多错误。 我认为js文件按字母顺序加载,这是错误的。

我还认为Node.js不能在浏览器中运行,所以我试图做的事情可能是完全错误的。 还有其他选择吗?

我正在开发Node.js模块,并且想使用Karma在工作时对其进行自动测试。

你不应该。 业力是为客户端代码设计的。

要自动测试代码,最简单的方法是创建一个与此代码相似的npm脚本(使用mocha):

"scripts": {
    "test": "mocha ./**",
    "test:watch": "npm run test -- -w"
}

然后,使用npm test按需npm run test:watch ,或使用npm run test:watch连续运行测试。

如果愿意,还可以在监视任务中使用grunt或gulp脚本。

您认为业力不适合测试服务器端代码是正确的。 它会在浏览器的上下文中运行所有内容,这会导致您看到的问题。 如果要为服务器和客户端开发模块,则可以将karma与browserfiy结合使用,但是仍然需要在节点环境中运行测试。

相反,我建议使用mocha :一个简单而强大的测试运行程序,非常适合测试节点模块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM