首页 > 解决方案 > 提交没有发生

问题描述

我设置husky为进行预提交格式化并运行测试。当我这样做时,git commit -m "readme fix"我得到了这个:

 PASS  src/App.test.jsx
  ✓ plug (15 ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        0.91 s, estimated 1 s
Ran all test suites related to changed files.

Watch Usage
 › Press a to run all tests.
 › Press f to run only failed tests.
 › Press q to quit watch mode.
 › Press p to filter by a filename regex pattern.
 › Press t to filter by a test name regex pattern.
 › Press Enter to trigger a test run.

但是提交实际上并没有发生。我不能用终端做任何事情?除了 Ctrl + C。即使我尝试输入 a、f、q 等 - 也没有任何反应。如何实际提交?我究竟做错了什么?

标签: githusky

解决方案


一长串“Press something...”消息表明测试运行者没有退出,但它正在等待做更多的事情。按q,它将退出并且提交将结束。

更改运行测试的方式,使其不在“监视”模式下启动(您可能应该--watch从其命令行中删除)。

您发布的输出看起来类似于jest. 查看Jest CLI 选项

--watchor的目的--watchAll是以 TDD 工作方式运行 Jest。在初始执行测试后,它会监视测试文件并在修改后立即运行它们。您不再关心运行它,您只需编写用例和代码。
它不适合你想要的。


顺便说一句,运行测试或代码检查或代码美化器或任何其他需要超过 0.5 秒才能完成的程序是个坏主意。Git 与 Subversion 或其他较旧的 CVS-es 之间的主要区别之一是,使用 Git,提交会立即发生。在 Git 哲学中提交是保存工作的更聪明的方式。您应该经常提交,并且提交操作不应该妨碍您。通过添加冗长的操作作为提交钩子,您可以防止自己使用 Git,因为它被设计为使用。


推荐阅读