我在我的项目中引入单元测试,为此,我需要自己制作一个package.json
文件。
第一个问题是,您使用的是哪个unit testing suite
?我期待mocha
这似乎是Node.js
项目的标准。
第二个问题是:是否有任何产生package.json
文件的神奇方法? (对于依赖项和版本)
第三个问题是:我在开发项目时已经测试了很多npm packages
,现在我已经遇到了很多可能未使用的软件包。有什么办法可以说出哪一个没用吗? (我看到npm list installed
虽然有用但是很有用)
答案 0 :(得分:34)
我正在使用摩卡。
npm init
npm ls
会在package.json中不包含“无关”旁边的内容。但是,听起来你还没有package.json。
基本上,您的工作流程非常落后。以下是它的工作方式:
npm init
开始一个新项目。它没有依赖关系。express
?将其添加到依赖项下的package.json
,然后运行npm install
。mocha
?将其添加到package.json
下的devDependencies
,然后运行npm install
。您似乎有一些现有的代码与手动安装的软件包(通过npm install <packageName>
),这是一个烂摊子。我建议重新开始并遵循上述工作流程。
答案 1 :(得分:20)
回答第三个问题:
npm prune
将删除 package.json 中不再提及的所有已安装模块。
你真的应该问3个不同的问题。
答案 2 :(得分:6)
我也在使用摩卡。它具有代码覆盖率,BDD,TDD,在浏览器中运行。这是非常完整的,并且我认为是最杰出的javascript / node.js程序员之一,名为TJ。
几乎不可能猜出要使用哪个版本。因为npm不知道哪个版本打破了哪个依赖项。您可以使用node-detective之类的东西安装所有依赖项。然后你可以在javascript中使用npm.js安装它们。也许我想在将来解决这个问题。
我也可能会删除所有依赖项,然后使用步骤(2)重新安装所需的依赖项。但是目前的HD还不再是光盘空间。
答案 3 :(得分:3)
我正在使用誓言。这很不错,但并不完美。我发现节点中的单元测试经常具有挑战性,因为对dbs&amp ;;的异步回调。这样,并且大部分都在测试顶级功能。
了解您正在使用的包的唯一方法是知道。您无法以编程方式生成此内容。我的建议是积极地删除软件包,然后重新测试所有功能 - 如果它中断,你就会知道你需要重新安装一个软件包。
答案 4 :(得分:2)
回答第三个问题,您可以使用Sweeper列出未使用的依赖项,然后将它们从package.json中删除。只需npm install -g sweeper
,然后在项目目录中,在命令行上调用sweeper
。