# faf-taf-git 中文文档

规范地址：https://npmcn.com/package/faf-taf-git/

版本：2\.4\.6
npm 元数据更新时间：2026-11-03T15:33:43.051Z
中文译文更新时间：2026-11-03T15:47:51.262Z
软件包许可：MIT

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/faf-taf-git
原文对照：https://npmcn.com/package/faf-taf-git/?lang=original
项目主页：https://github.com/Wolfe-Jam/faf-taf-git#readme
源码仓库：https://github.com/Wolfe-Jam/faf-taf-git

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：116 kB，37 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：4 个
- 首次发布：2026-02-17T20:55:02.342Z
- 最新版本发布：2026-11-03T15:33:42.761Z
- 已发布版本数：12（近 12 个月 12 个）

## 中文简介

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

## 安装

```sh
npm install faf-taf-git
```

也可以使用：`pnpm add faf-taf-git`、`yarn add faf-taf-git`、`bun add faf-taf-git`

## README

# faf-taf-git

[![TAF](https://npmcn.com/package/faf-taf-git/badge.svg)](https://github.com/Wolfe-Jam/faf-taf-git) [![Claude Code](https://img.shields.io/badge/Claude_Code-enabled-00D4D4)](https://github.com/anthropics/claude-code-action) [![Business card · Get yours →](https://wolfe-jam.github.io/agent-business-card/badge.svg)](https://wolfe-jam.github.io/agent-business-card/?repo=Wolfe-Jam/faf-taf-git)

**用于测试的收据打印机。**

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

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

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

## 为什么

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

## 收据长什么样啊

收据保存在一个名为 `.taf`，在一个叫做 `taf-receipts`：

```yaml
- 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](https://npmcn.com/package/faf-taf-git/RECEIPT-FORMAT.md)。

## 设置它（GitHub动作）

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

```yaml
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/faf-taf-git@v2.4.6
        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，你自己的机器）：

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

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

## 阅读收据

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

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

```bash
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回购；你不需要其他任何东西。如果您的项目还使用 [快](https://faf.one/) (一个 `project.faf` （描述AI项目的文件），两者结合在一起： `project.faf` 说项目是什么，然后 `.taf` 显示它的测试一直通过。

## 从v1升级

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

## 开发

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

看到 [CONTRIBUTING.md](https://npmcn.com/package/faf-taf-git/CONTRIBUTING.md) 和 [CHANGELOG.md](https://npmcn.com/package/faf-taf-git/CHANGELOG.md)。

## 许可证

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

如果fat - taff -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 和提交记录判断。

