faf-taf-git

中文文档
2.4.6发布于 2026/11/03MITTypeScriptCommonJS

用于git的测试收据打印机。每次CI运行都会打印收据给。只有附件,时间戳,保存在git中。时间证明。

中文使用文档
文档目录12 节
  1. 为什么
  2. 收据长什么样啊
  3. 设置它(GitHub动作)
  4. 与您的测试运行器一起工作
  5. 其他CI系统
  6. 阅读收据
  7. 设置
  8. 伪装有多难?
  9. 使用FAF(可选)
  10. 从v1升级
  11. 开发
  12. 许可证

faf-taf-git

TAF Claude Code Business card · Get yours →

用于测试的收据打印机。

每次在CI中运行测试时,fatf - taff -git都会写一个小收据:当它们运行时,通过、失败和跳过的数量。收据保存在你的回购中,一个接一个,在他们自己的分支上。随着时间的推移,它们会显示你的测试是否真的一直通过。

任何人都可以变绿一次。收据显示了时间的变化。

npm: faf-taf-git · GitHub Action: Wolfe-Jam/faf-taf-git ·MIT,免费

为什么

  • 测试结果通常会消失。 CI显示今天的运行,然后日志过期。收据。
  • 你可以回头看。 测试什么时候开始失败的?在上次发布之前main是绿色的吗?
  • 其他人可以检查一下。 用户、评论者、审计员和人工智能代理可以自己阅读历史,而不是相信你的话。

收据长什么样啊

收据保存在一个名为 .taf,在一个叫做 taf-receipts:

- timestamp: 2026-10-29T20:28:58.090Z
  result: PASSED
  tests:
    total: 628
    passed: 621
    failed: 0
    skipped: 7
  trigger: github-actions

result 是 PASSED 或 FAILED. 完整的格式是 RECEIPT-FORMAT.md。

设置它(GitHub动作)

例如,将其添加到工作流中 .github/workflows/tests.yml. 将安装和测试行交换为您自己的行。

name: Tests

on:
  push:
    branches: [main]
  pull_request:
  workflow_dispatch:

jobs:
  test:
    runs-on: ubuntu-latest
    permissions:
      contents: write              # lets the action save receipts

    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-node@v6
        with:
          node-version: '24.x'
      - run: npm ci

      - name: Run tests
        id: tests
        continue-on-error: true    # keep going, so a failed run still gets a receipt
        run: |
          set -o pipefail
          npm test 2>&1 | tee test-output.txt

      - name: Print the receipt
        if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request'
        uses: Wolfe-Jam/[email protected]
        with:
          test-output-file: test-output.txt
          target-branch: taf-receipts

      - name: Fail the job if the tests failed
        if: steps.tests.outcome == 'failure'
        run: exit 1

就是这样。第一次运行创建 taf-receipts 给你分支。

这个食谱有四点是正确的:

  1. 失败的运行也会得到收据。 一次红跑记录为 FAILED我没有被遗漏。只有绿色奔跑的历史证明了这一点。
  2. 只有 main 得到收据。 拉取请求和其他分支仍然运行测试,但记录是关于 main。
  3. 这项工作仍然很困难 当测试失败时,你的检查保持诚实。
  4. 测试只运行一次。 收据读取刚刚发生的运行的输出。

如果测试在多个操作系统上运行,则从运行测试最多的操作系统打印收据。

与您的测试运行器一起工作

跑步者什么给行动
Python (pytest)pytest --junitxml=report.xml,然后 test-output-file: report.xml
任何编写JUnit XML的运行程序XML报告文件(Rust with cargo nextest与…一起去 gotestsum --junitfile, Java与Maven或Gradle;. NET, PHPUnit, Jest with jest-junit)
开玩笑控制台输出(npm test 2>&1 | tee test-output.txt)
轻快地控制台输出
包子的控制台输出 bun test
WJTTC控制台输出

JUnit XML是大多数测试运行者可以编写的常见报告格式。如果您的运行程序不在表中,请检查它是否可以编写JUnit XML。

其他CI系统

命令行工具在任何Node.js运行的地方做同样的工作(GitLab, Jenkins, CircleCI, Bitbucket, Azure,你自己的机器):

npm test 2>&1 | tee test-output.txt
npx faf-taf-git --file test-output.txt --commit

--commit 提交更新后的 .taf 给你。把它关掉,只更新文件。

阅读收据

git fetch origin taf-receipts
git show origin/taf-receipts:.taf

为你的自述文件制作一个徽章:

npx faf-taf-git badge --output badge.svg

设置

操作的输入

输入它是做什么的默认的
test-output-file包含测试输出或JUnit XML报告的文件要求
target-branch分行的收据存到。使用 taf-receipts。当前分支
auto-commit提交并推送收据true
commit-message提交消息chore(taf): update .taf receipt [skip ci]

动作输出: result, passed, failed, skipped, total, taf-updated. 例如, ${{ steps.taf.outputs.passed }}。

命令行选项: --file, --commit, --message, --cwd, --verbose。运行 npx faf-taf-git --help 查看完整列表。

伪装有多难?

收据由CI根据实际测试输出写入,并保存在git中。编辑或删除旧收据会更改git历史记录,因此任何人都可以比较历史记录。这个 taf-receipts 分支只会增长:永远不要重写、压缩或强行推动它。

收据证明该提交通过了测试。它不能证明发布的包是根据那个提交构建的。

使用FAF(可选)

fatf - taff -git适用于任何git回购;你不需要其他任何东西。如果您的项目还使用 快 (一个 project.faf (描述AI项目的文件),两者结合在一起: project.faf 说项目是什么,然后 .taf 显示它的测试一直通过。

从v1升级

V1在行动中进行了测试。V2读取您自己的测试步骤编写的文件。取代 test-command: 与一个测试步骤,保存其输出,并点 test-output-file: 在该文件中(参见上面的设置)。

开发

npm ci
npm test          # the test suite
npm run build     # rebuilds dist/, which the action runs

看到 CONTRIBUTING.md 和 CHANGELOG.md。

许可证

麻省理工学院。永远免费。

如果fat - taff -git对你有用,星星会帮助别人找到它。

版本与发布记录

faf-taf-git 共发布 12 个版本,首次发布于 2026/02/18;过去 12 个月发布了 12 个版本。

版本发布日期距今
2.4.6latest2026/11/03今天
2.4.52026/11/031 天前
2.4.42026/11/012 天前
2.4.32026/11/012 天前
2.4.22026/10/304 天前
2.4.12026/10/304 天前

关于 faf-taf-git 的常见问题

faf-taf-git 是什么?

用于git的测试收据打印机。每次CI运行都会打印收据给。只有附件,时间戳,保存在git中。时间证明。

如何安装 faf-taf-git?

在项目目录运行 npm install faf-taf-git,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 faf-taf-git,可以用 npx faf-taf-git 直接运行。

faf-taf-git 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

faf-taf-git 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

faf-taf-git 可以商用吗?

faf-taf-git 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

faf-taf-git 还在维护吗?

最新版本 2.4.6 发布于 2026/11/03(今天);至今共发布 12 个版本,其中过去 12 个月发布了 12 个;首次发布于 2026/02/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。