grunt "test command" 在 npm init 上做了啥

Posted

技术标签:

【中文标题】grunt "test command" 在 npm init 上做了啥【英文标题】: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"
  ,

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

【问题讨论】:

嗯,你在对你的应用程序进行单元测试吗? 【参考方案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

【讨论】:

以上是关于grunt "test command" 在 npm init 上做了啥的主要内容,如果未能解决你的问题,请参考以下文章

grunt学习三-bower

Grunt-Mocha-Test BlanketJS 覆盖范围

grunt test - 致命错误:尚未实施单元测试

导致此错误的原因 - “致命错误:无法找到本地咕噜声”

使用 grunt-shell 调用调用 docker run 的脚本时如何解决“输入设备不是 TTY”?

安装好grunt,cmd 提示"grunt不是内部或外部命令" 怎么办