本指南适用于想要向库贡献的人,或者想了解背后的内容:如何进行测试?我们自动化什么?我们如何做发布?等等。
如果你正在查找如何使用库的文档,用户指南 是适合你的。
NOTE: 这个文档是一个正在进行的工作。更多内容将分阶段添加。如果你有问题,你想看到回答,请在 as comments on this issue 中提出,谢谢!
目录:
虽然 tween.js 不需要依赖 node.js 运行,但我们使用 node.js 来进行开发。所以我们需要先 安装 node.js,然后才能在库中工作。
Node.js 包括我们用来运行脚本的 npm 工具,例如打包、运行测试等的脚本。在你尝试运行下面详述的任何步骤之前,请确保它在你的系统中正常工作。
安装 node.js 后,克隆 tween.js 存储库:
git clone https://github.com/tweenjs/tween.js.git
进入该文件夹:
cd tween.js
并运行脚本来安装开发依赖项:
npm install
或者分三行:
git clone https://github.com/tweenjs/tween.js.git
cd tween.js
npm install
npm install
成功完成后,尝试运行测试:
npm test
如果你在运行上述任何步骤时遇到问题,请尝试使用你选择的搜索引擎搜索错误文本。这通常是最快的解决方法,因为很多人可能已经遇到过同样的问题。
test
目录中有一套自动化测试。
这些可以快速发现代码上的回归,在添加新功能或更改代码以修复 Bug 时很有用;我们不想引入新的 Bugs!自动化测试还会发现风格问题,这有助于我们保持库的凝聚力。
要运行测试,请输入:
npm test
你应该在更改库中的代码后运行测试。如果你更改测试描述的行为,测试将不会通过,你将得到指向失败测试的错误。 这可能是因为…
以上两种情况,发生频率更高的是第一个,但第如果二个发生了,可能是边缘情况。
自动化测试通过之后,你应该做的另一件事是运行 examples
文件夹中的示例。有种情况很少见,但可能会发生:你的更改引入了自动测试未检查的外观差异,注意到这一点的唯一方法是运行示例并让人工发现输出中的差异。如果你不想签出库的两个副本,可以查看在线例子。
测试用例在 src/tests.ts
文件中。
测试使用 nodeunit 执行。
TODO: 如果在浏览器中打开 test/unit/nodeunit.html
,测试也应该能够正常运行,但是现在已经被损坏。有一个 打开的问题 可以使他们再次工作。
我们使用 JSCS 和 JSHint 来保证代码风格的统一。
要自动格式化代码并报告不可被格式化的代码片段的任何错误,请运行:
npm run test-lint
Prettier 规则在 .prettierrc.js
中,ESLint 规则在 .eslintrc.js
中。
我们想回归测试性能,即如果更改使运行变得更慢,或者简单地测试性能,那么我们可以比较不同浏览器之间相同代码的性能。
有一个open issue来跟踪这方面的工作,但我们还没有取得进展。请求帮助! :-)
我们使用 GitHub Actions 进行持续集成,以便为每个 pull request 运行构建和测试。 .github/workflows/tests.yml
文件告诉 GitHub 要运行什么;在我们的例子中,我们在该文件中指定的操作系统和 Node.js 版本中运行 npm install
,然后运行 npm test
。
TODO:将 macOS 和 Windows 添加到运行测试的操作系统。 请求帮助! :)
目前发布过程是手动的。
当准备好在 master
分支上发布时,确保没有未提交的更改,然后运行 npm run release:patch
发布一个新版本,其补丁号已被修改,npm run release:minor
,修改 minor 版本号并发布一个新版本,或者 npm run release:major
修改 major 版本号并发布一个新版本。
Tip: 请参阅 semver.org 和 npm-semver 文档以了解语义版本控制。