首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在node.js中通过一个"npm test“命令运行mocha和mocha-phantomjs测试?

如何在node.js中通过一个"npm test“命令运行mocha和mocha-phantomjs测试?
EN

Stack Overflow用户
提问于 2013-12-04 21:09:26
回答 3查看 26.4K关注 0票数 57

我有一些在node.js环境和浏览器中工作的节点包。现在我有两个单独的测试(针对每个环境)。仅使用npm test命令运行这些测试的最佳方式是什么?另外,我想将这些包添加到travis中。

我使用的是mochamocha-phantomjs

节点测试命令

代码语言:javascript
复制
node ./node_modules/mocha/bin/mocha ./test/node/index.js --reporter spec

浏览器测试命令

代码语言:javascript
复制
node ./node_modules/mocha-phantomjs/bin/mocha-phantomjs ./test/browser/index.html

我尝试过的东西:

  1. 将这些命令添加到以分号分隔的npm test脚本中
    • 问题:当第一个脚本中有错误,但第二个脚本中没有错误时,命令以0退出,travis build passed.

  1. 让节点命令在npm test脚本中测试,并为浏览器测试创建自定义脚本。然后将这两个命令(npm testnpm run-script test-browser)作为数组添加到travis.yml中。
    • 问题:用户必须手动运行两个独立的测试scripts.

  1. 让节点命令在npm test脚本中测试,并将浏览器测试添加到npm posttest命令中。Travis.yml将只有一个脚本,用户也将不得不运行一个脚本(每个人都很高兴)。
    • 问题:就是感觉不对劲,所以我想知道是否有更好的way.

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-05 03:59:38

我喜欢以下几点:

代码语言:javascript
复制
  "scripts": {
    "test": "npm run test-node && npm run test-browser",
    "test-node": "mocha -R spec ./test/node/index.js",
    "test-browser": "mocha-phantomjs ./test/browser/index.html"}

如果第一次通过,&&只会运行第二次,如果需要,您可以单独运行这两次。注意,npm总是使用relative mocha (在node_modules内部),而不是全局的,所以直接调用mochamocha-phantomjs没有什么坏处。您可以使用mocha的-b选项来提高效率,该选项将在遇到错误时立即退出。

票数 77
EN

Stack Overflow用户

发布于 2014-08-29 01:37:56

我在这里寻找关于使用karma配置npm的信息。@dankohn's answer可以这样改编:

代码语言:javascript
复制
"scripts": {
  "test": "npm run test-node && npm run test-browser",
  "test-node": "karma run",
  "test-browser": "karma start --single-run"
}

希望这对其他人有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2017-08-08 21:40:17

您也可以使用npm-run-all包:

npm install npm-run-all --save-dev

代码语言:javascript
复制
"scripts": {
  "test": "npm-run-all test-mocha test-mocha-phantomjs",
  "test-mocha": "mocha ./test/node/index.js --reporter spec",
  "test-mocha-phantomjs": "mocha-phantomjs ./test/browser/index.html"
}

它将运行mochamocha-phantomjs的本地副本。Twitter bootstrap使用这个库进行开发。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20376269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档