josecfreittas/elixir-coverage-feedback-action
GitHub: josecfreittas/elixir-coverage-feedback-action
这是一个 Elixir 项目的 GitHub Action,用于自动化测试覆盖率检查并在 PR 中提供反馈。
Stars: 12 | Forks: 6
# Elixir 测试覆盖率反馈评论
此操作获取 `mix test --cover` 的输出,进行处理,并在源仓库的拉取请求中创建反馈评论。它还会检查覆盖率是否达到操作中配置的最低值,如果未达到则报错退出。


## 输入参数
此操作接受以下输入:
- `github_token`(必填):用于在 PR 上创建/编辑评论的 GitHub 令牌。
- `coverage_threshold`(可选):覆盖率阈值百分比。默认值为 90。
- `working_directory`(可选):Elixir 项目的工作目录。默认为根目录(".")。
## 使用此操作的完整测试工作流示例
`.github/workflows/test.yml`
```
on:
pull_request:
push:
branches:
- main
jobs:
test:
name: Tests & Checks
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
env:
MIX_ENV: test
services:
db:
image: postgres:15-alpine
ports: ["5432:5432"]
env:
POSTGRES_DB: project_test
POSTGRES_USER: project
POSTGRES_PASSWORD: mycoolpassword
steps:
- uses: actions/checkout@v4
- name: Setup Erlang and Elixir
uses: erlef/setup-beam@v1.17
with:
elixir-version: "1.16.0-otp-26"
otp-version: "26.0"
- name: Mix and build cache
uses: actions/cache@v4
with:
path: |
deps
_build
key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }}
restore-keys: ${{ runner.os }}-mix-
- name: Get dependencies
run: mix deps.get
- name: Code analyzers
run: |
mix format --check-formatted
mix compile --warnings-as-errors
- name: Tests & Coverage
uses: josecfreittas/elixir-coverage-feedback-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
coverage_threshold: 80
# working_directory: ./your_project_directory
```
标签:Elixir, Elixir测试, Erlang, GitHub Actions, PostgreSQL, PR反馈, pull request, 代码覆盖率, 反馈消息, 开发运维, 开源框架, 持续集成, 数据库服务, 测试自动化, 测试运行, 自动笔记, 软件开发, 阈值检查