【问题标题】:what does grunt "test command" do on npm initgrunt "test command" 在 npm init 上做了什么
【发布时间】:2013-06-12 06:03:44
【问题描述】:

我正在努力学习咕噜声。当我运行 npm init 时,我在创建一个询问“测试命令”的 package.json 文件的过程中收到提示 - 我不确定如何使用它,或者它的预期。它似乎没有很好的记录。如果我将其留空,我会在生成的 package.json 文件中得到它:

"scripts": {
    //"test": "echo \"Error: no test specified\" && exit 1"
  },

谁能解释一下如何设置测试脚本?

【问题讨论】:

  • 嗯,你在对你的应用程序进行单元测试吗?

标签: javascript node.js package gruntjs


【解决方案1】:

首先,你的 package.json 中的 scripts-property 与 grunt 本身无关。它只是一个来自 npm 的 cli 命令,如果你运行它就会运行

$ npm test

在此处了解更多信息:https://npmjs.org/doc/scripts.html

例如如果您使用 grunt & nodeunit 测试您的应用程序,您可以将其添加到脚本块

"scripts": {
  "test": "grunt nodeunit"
}

如果你运行'npm test',你的nodeunit-task就会运行

如果您更改底层测试框架,这基本上可以更轻松地进行持续集成等。

当然,如果您在运行测试之前和之后需要做更多事情(例如之前的连接,之后的清理),您可以添加 alias-task

【讨论】:

  • 作为扩展,您可以在 npm test 中使用多个命令执行 package.json,例如,如果您想要 grunt 并编译您的 sass,您可以这样做 - "test": "grunt && compass compile"
  • @SimonPertersen:我不会这样做。那里有一个 grunt-compass 插件。如果你想运行测试然后编译 compass,你应该使用这个插件,注册一个运行这个链的别名任务,然后让 npm test 运行你的别名任务!
  • 这只是一个示例,您可以执行大量命令或将其用于其他事情,这只是因为我手头有这个 - 但别名任务仅适用于咕噜声,我可以运行终端命令吗还有吗?
  • 当然可以,但是对于您想要在那里做的几乎所有事情,都会有一个可用的 grunt 插件。如果没有,为你想做的任务写一个!
【解决方案2】:

如上面的答案中所述,您可以在从 cmd 创建包 json 或手动编辑 json 文件时指定它时运行测试命令。 基本上按照 npm 文档,它用于运行提供的包的测试脚本。

npm docs test

在我的例子中,我使用它来测试一个使用 Jasmine(spec.js 文件)的角度应用程序,可以在本文中找到示例用法:-

Getting Started with Node.js and Jasmine

【讨论】:

    猜你喜欢
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    相关资源
    最近更新 更多