每个开发人员都应该运行的 5 个自动化
作为开发人员,我们因为没有尽可能多地编写测试或自动化而受到批评。
并不是我们不这样做(好吧,也许我们中的一些人不这样做)。但事实上,编写更多代码比花时间编写测试和自动化更有趣。
好消息是:GitHub Actions提供了数以千计的预先编写的、社区构建的测试和自动化,范围从代码质量到代码审查到安全性再到测试。所有这些都可以根据您的需求进行定制,或者通过 GitHub Actions 合并到 CI/CD 管道中。
这是很多事情。为简单起见,我们认为您应该在代码上运行以下五个自动化:
1. 使用 CodeQL 提高安全性
无论您是在从事开源项目还是广泛使用的应用程序,总有一件事情是您永远不想看到的:一篇关于您的软件(或您所依赖的软件)如何存在安全漏洞的攀爬Hacker News帖子。
梳理您的代码和咨询委员会的安全问题和零日漏洞可能很耗时(但是,如果我们诚实的话,这也不是一件坏事)。
CodeQL有一种更简单的方法,它是 GitHub 的语义代码分析引擎,可针对存储库代码运行安全检查以快速识别任何漏洞。CodeQL 跨编码语言和包查找安全建议,然后自动将它们显示在您存储库的安全选项卡中。
最好的部分?您可以利用预先构建的 GitHub 操作来运行这些安全检查。这意味着它就像设置 GitHub 操作工作流并将其应用于拉取请求和代码合并以快速扫描任何已知漏洞一样简单。
这很容易做到。它可以让您免于在 Hacker News 或 Twitter 上查找代码中的任何安全问题(这总是一种胜利)。
2.npm test在您的工作流中运行以推送最新最好的
大多数开发人员都在使用npm test(或类似的命令)来测试他们的代码,这是有充分理由的:它是一个强大而简单的工具,可以让测试任何数量的事情变得简单。
对于不编写 JavaScript 的人来说npm test,是通过 package.json 文件配置的命令,该文件是应用程序的一部分。在这个 package.json 文件中,您可以添加任意数量的脚本来测试从可访问性到安全性的各种内容。
查看我最近在我正在处理的存储库中使用的示例:
"scripts": {
"test": "npm run clean && node scripts/test.js --env=jsdom --updateSnapshot",
}
这意味着每次我在 GitHub Actions 工作流中运行 npm test 时,它都会在我的 package.json 文件中引用这个脚本。它还自动运行干净和节点脚本测试并更新 jest 快照以确保我一直在推送最新最好的软件。
这就是为什么这很重要:如果您的 npm 测试通过了,您应该有信心推动生产。
但就像我说的,它npm test是一个灵活、简单且功能强大的工具,可以根据您在 package.json 文件中放置的脚本执行很多操作。为了安全起见,我将添加一些常见的内容:
测试可访问性以确保所有 HTML 元素都具有 aria(您可以在此处找到我的指南)。
确认站点中的所有链接都有效,不要 404(这是一个很棒的 GitHub Actions 工作流程来测试这个)。
在 UI 组件上运行单元测试以确保按钮正常工作(这是 Playwright 的一个很好的指南)。
3. 使用自动化视觉测试查看您的构建
这听起来似乎很简单,但是能够在服务器上实时查看您的内容非常有用。
即使只是查看您的按钮是否正常工作也会非常有帮助。考虑一个古老的 UI 问题,开发人员花费所有时间完善应用程序功能,最终在没有登录按钮的情况下发布它(这实际上已经发生在 IRL)。
也许很有趣,但也会引起恐惧(甚至可能是幸灾乐祸的定义)。
提示自动化视觉测试,这是一种将代码自动部署到测试环境的方法,您可以在其中与刚刚构建的内容进行交互。
最好的部分:您可以在 GitHub Marketplace 中使用预先构建的操作,例如 Cypress (它是开源的),并将其作为测试周期的一部分直接放入您的 GitHub Actions 工作流程中。
这为您提供了一种使用无头浏览器测试任何内容的快速方法,以确保一切看起来都符合预期——而且,它还为您提供实时日志。
4. 使用 Lighthouse 确保您的网站不会变慢
首先,请注意:将 Lighthouse 检查作为 CI 或自动化测试的一部分并不是每个人都会做的事情,但每个人都应该这样做。
为什么?有时,对网站或基于 Web 的应用程序的开发更改会对您的网站性能产生负面影响。这会对 SEO、用户体验等产生影响。
Lighthouse是一个开源的轻量级工具,可在 Chrome DevTools 中使用,作为 Node 模块,或从您的命令行测试网站页面质量:
无障碍
表现
渐进式网络应用
搜索引擎优化
还有其他一些事情
它也可在 GitHub Marketplace 中作为操作工作流使用,您可以将其直接构建到 CI 管道中,以自动检查任何编码更改对整体站点性能的影响。
专业提示:由于 Lighthouse 提供 CLI 功能,因此您也可以从那里直接在您的 GitHub 操作工作流程中运行它。
由 Google Chrome 团队批准,此 GitHub Actions 工作流程使 Web 测试变得简单——并且,通过将其构建到您的 CI 管道中,您可以确保每次发布时始终提供最佳的 Web 体验。
5. 使用 GitHub Actions 自动化您的发布(和发布说明)
作为开发人员,我知道发布项目后的感觉是多么棒。我也知道编写发行说明、检查代码并实际发布您所做的工作是多么耗时。
输入最新版本的 GitHub Releases。新版本于 2021 年以通用测试版的形式推出,支持自动生成的发行说明和自动发布(以及其他一些内容)。
以下是如何开始:
将预构建的工作流创建发布添加到 GitHub 操作中的 CI 管道。
添加工作流 Bump 版本作为独立的 GitHub 操作工作流。
压缩并合并发布请求后,请手动运行 Bump Version 工作流程。
Bump Version 将使用 npm version 命令通过碰撞最新版本来创建一个新版本;然后,这会将新版本和标签推送到您的存储库。同时,该标签会触发创建 GitHub 发布的 Create Release,自动生成变更日志发布说明,并发布到 npm。
简单的。不相信我?查看下面来自传奇人物 Myles Borins 的视频,他帮助在 GitHub 中构建了这些功能:
当谈到自动化和自动化测试时,您可以做很多事情,但也有很多大多数人没有做的事情。通过向您的存储库添加一些简单的内容,您可以确保您的代码更安全、您的应用程序运行得更快、您的发布更顺畅,等等。

喜欢记得「点赞」或「在看」,让我们一起成长。
关注我们,点击下方二维码长按识别。

浙公网安备 33010602011771号