设置karma来testingnode.js模块?

我正在开发一个Node.js模块,我想用Karma在工作时自动testing它。

在我的configuration文件中,我设置了这个:

// 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不能在浏览器中运行,所以我试图做的可能是完全错误的。 有其他select吗?

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

相反,我会build议使用摩卡 :一个简单而强大的testing运行器,非常适合testing节点模块。

我正在开发一个Node.js模块,我想用Karma在工作时自动testing它。

你不应该。 Karma是为客户端代码devise的。

要自动testing你的代码,最简单的方法是创build一个类似于这个(与摩卡)npm脚本:

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

然后,使用npm test按需npm run test:watch ,或者npm run test:watch以持续运行testing。

如果您愿意,还可以使用带有监视任务的咕噜声或大嘴巴脚本。