设置 karma 来测试 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 在浏览器中不能是 运行,所以我试图做的可能是完全错误的。有替代方案吗?
你说的 karma 不适合测试服务器端代码是对的。它会 运行 浏览器上下文中的所有内容,这会导致您看到的问题。如果您想为服务器和客户端开发一个模块,您可以将 karma 与 browserfiy 结合使用,但您仍然需要 运行 在节点环境中进行测试。
相反,我建议使用 mocha:一个简单而强大的测试 运行ner,非常适合测试节点模块。
I'm developing a Node.js module, and I want to use Karma to auto-test
it while working.
你不应该。 Karma 专为客户端代码设计。
要自动测试您的代码,最简单的方法是创建一个与此类似的 npm 脚本(使用 mocha):
"scripts": {
"test": "mocha ./**",
"test:watch": "npm run test -- -w"
}
然后,使用npm test
按需运行测试,或npm run test:watch
连续运行测试。
如果愿意,您也可以将 g运行t 或 gulp 脚本用于监视任务。
我正在开发一个 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 在浏览器中不能是 运行,所以我试图做的可能是完全错误的。有替代方案吗?
你说的 karma 不适合测试服务器端代码是对的。它会 运行 浏览器上下文中的所有内容,这会导致您看到的问题。如果您想为服务器和客户端开发一个模块,您可以将 karma 与 browserfiy 结合使用,但您仍然需要 运行 在节点环境中进行测试。
相反,我建议使用 mocha:一个简单而强大的测试 运行ner,非常适合测试节点模块。
I'm developing a Node.js module, and I want to use Karma to auto-test it while working.
你不应该。 Karma 专为客户端代码设计。
要自动测试您的代码,最简单的方法是创建一个与此类似的 npm 脚本(使用 mocha):
"scripts": {
"test": "mocha ./**",
"test:watch": "npm run test -- -w"
}
然后,使用npm test
按需运行测试,或npm run test:watch
连续运行测试。
如果愿意,您也可以将 g运行t 或 gulp 脚本用于监视任务。