概述
要构建一个健壮的 Discourse 扩展,最好在您的插件或主题组件中包含持续集成 (CI)。这将有助于及早发现错误,并减少代码中的 bug 出现的几率。
使用 GitHub Actions 设置持续集成 (CI) 工作流来自动化构建和测试是 Discourse 团队在我们所有组件上使用的方法,我们建议您也这样做。
设置
要为 GitHub Actions 添加自动化工作流以进行检测,您需要在存储库的根目录下创建一个 .github/workflows 文件夹。
在 workflows 文件夹中,您可以定义 GitHub Actions 需要运行的一组自动化。例如,这些可以是用于代码检查和测试的 .yml 文件。
我们为 插件 和 主题组件 创建了模板工作流,您可以加以利用。这些工作流连接到我们 此处 的“可重用工作流”定义。
在模板的骨架存储库中,您可以在 GitHub 上点击“使用此模板”按钮,以基于该模板创建插件/主题组件存储库。
或者,如果您已经有一个想要添加工作流的项目,只需将相关工作流复制到存储库的 .github/workflows/ 文件夹中:
主题和主题组件: discourse-theme.yml
这些模板被锁定在我们可重用工作流的特定主版本。我们对工作流进行的微小改进将自动在您的主题/插件中生效。对于重大更改(例如引入新的代码检查器),我们将增加可重用工作流的主版本号,您需要更新您的工作流以指向新版本。
搞定!您已全部设置完毕!只需在您的存储库中创建一个提交或一个PR,GitHub Actions 就会自动检测到工作流并开始运行作业。
GitHub Actions 将显示每个测试的明细,运行后将根据测试是否通过或失败,显示
或
。
如果测试失败,点击详细信息将提供有关失败原因的一些信息,这可能为您提供有关代码问题和需要修复内容的线索。
添加您自己的测试
为了使插件和组件测试有效,编写插件或主题组件的测试非常重要。
有关如何使用 EmberJS 编写前端测试的详细信息,请参阅:
- Write acceptance tests and component tests for Ember code in Discourse
- Introduction - Testing - Ember Guides
有关如何使用 Rails 编写 RSpec 测试的更多详细信息,请参阅:
示例
为了您的方便,我们精选了几个具有强大测试集成的插件和主题组件示例:
| 插件 / 组件 | 客户端测试 | 服务器端测试 |
|---|---|---|
| Assign | ||
| Calendar | ||
| Reactions | ||
| Right Sidebar Blocks | ||
| Tag Icons | ||
| Table Builder |
本文档已进行版本控制 - 在 github 上建议更改。
