22

我在我的项目中引入单元测试,为此,我需要为自己创建一个package.json文件。

第一个问题是,unit testing suite你用的是哪个?我很期待mocha这似乎是Node.js项目的标准。

第二个问题是:有什么神奇的方法可以生成package.json文件吗?(用于依赖项和版本)

第三个问题是:我npm packages在开发项目时进行了很多测试,现在我遇到了很多可能未使用的包。有没有办法判断哪个没用?(我看到npm list installed这是有用的)

4

5 回答 5

34
  1. 我正在使用摩卡咖啡。

  2. npm init

  3. npm ls将在你的 package.json 中没有的旁边列出“无关的”。但是,听起来您还没有 package.json。


基本上,您的工作流程非常落后。以下是它的工作原理:

  1. 用 开始一个新项目npm init。它没有依赖关系。
  2. 哦,我想开始使用一个包,比如说express?将其添加到package.json依赖项下,然后运行npm install​​.
  3. 哦,我想开始使用包进行开发,比如说mocha?将其添加到package.jsondevDependencies,然后运行npm install

您似乎有一些带有手动安装包(通过npm install <packageName>)的现有代码,这很乱。我建议重新开始并遵循上述工作流程。

于 2012-04-11T15:41:12.937 回答
20

回答第三个问题

npm prune

将删除package.json中不再提及的所有已安装模块。


你真的应该问 3 个不同的问题。

于 2013-12-03T21:41:15.623 回答
6
  1. 我也在用摩卡。它具有代码覆盖率、BDD、TDD,在浏览器中运行。它非常完整,并且由我认为最出色的 javascript/node.js 程序员之一 TJ 进行了大量维护。

  2. 几乎不可能猜测要使用哪个版本。因为 npm 不知道哪个版本破坏了哪个依赖。您可能可以使用类似node-detective 的东西安装所有依赖项。然后你可以在 javascript 中使用 npm.js 安装它们。也许我想在未来解决这个问题。

  3. 我也可能会删除所有依赖项,接下来使用步骤(2)安装所需的依赖项。但是,对于当前的 HD,磁盘空间也不再是一个大问题。

PS:我想我也同意 Domenic

于 2012-04-11T15:43:49.613 回答
3
  1. 我正在使用誓言。它非常好,但并不完美。我发现节点中的单元测试通常具有挑战性,因为异步回调到 dbs 等,并且主要是在测试顶级功能。

  2. 这是你的魔法:使用 Shrinkwrap 管理 Node.js 依赖项

  3. 了解您正在使用的软件包的唯一方法是了解。您不能以编程方式生成它。我的建议是积极地删除软件包,然后重新测试所有功能——如果它坏了,你就会知道你需要重新安装你的一个软件包。

于 2012-04-11T15:40:18.770 回答
2

回答您的第三个问题,您可以使用Sweeper列出未使用的依赖项,并将它们从您的 package.json 中删除。然后在命令行上npm install -g sweeper调用您的项目目录。sweeper

于 2013-10-19T20:45:25.667 回答