#tap #consumer #parser #convert-json #input-file #test-anything

bin+lib tap-consooomer

解析 Test Anything Protocol (TAP) 文件

1 个不稳定版本

0.1.0 2023 年 1 月 21 日

#411测试

Apache-2.0

50KB
1K SLoC

📦 tap-consooomer

那有三个字母o。

crate status: WIP Build and Test pre-commit.ci status codecov

Test Anything Protocol (TAP) 的 Rust 消费者。能够将 TAP14 文件解析为 pest 令牌。

用法

Reads a given Test Anything Protocol (TAP) file and prints the JSON-formatted parser result to
stdout. If FILE is omitted, TAP input is read from stdin. Parsing only comences after encountering
an EOF. Only complete TAP files are supported.

USAGE:
    tap [FILE]

ARGS:
    <FILE>
            Path to TAP input file

OPTIONS:
    -h, --help
            Print help information

    -V, --version
            Print version information

示例

请参阅 示例目录 中的某些示例 TAP 日志。要将它们转换为 JSON,请运行

 tap examples/cascading.tap

TAP 日志应按以下方式转换

输入 输出
TAP version 14
1..3 # root
ok 1 - i'm in root
# subtest: here begins sub-1
  2..2 # sub-1
  ok 2 - i'm in sub-1
ok 3
{
  "preamble": {
    "version": "14"
  },
  "plan": {
    "first": 1,
    "last": 3,
    "reason": "root"
  },
  "body": [
    {
      "test": {
        "result": true,
        "number": 1,
        "description": "i'm in root",
        "directive": null,
        "yaml": []
      }
    },
    {
      "subtest": {
        "name": "here begins sub-1",
        "plan": {
          "first": 2,
          "last": 2,
          "reason": "sub-1"
        },
        "body": [
          {
            "test": {
              "result": true,
              "number": 2,
              "description": "i'm in sub-1",
              "directive": null,
              "yaml": []
            }
          }
        ]
      }
    },
    {
      "test": {
        "result": true,
        "number": 3,
        "description": null,
        "directive": null,
        "yaml": []
      }
    }
  ]
}

许可证

许可协议

限制

  • 嵌入的 YAML 块被解析为单个 yaml 行的列表。这些被视为纯文本,且 不会 进一步分解。请使用您喜欢的任何 YAML 库(如 serde_yaml)进一步解析嵌入的 YAML 块。任何给定 yaml 行开头的缩进都用作整个 YAML 块的 锚点 并被删除。任何给定 yaml 行末的任何行分隔符(<LF><CR><LF>)都被省略。嵌入的 YAML 块内的空行或仅含空白字符的行将被删除。

依赖项

~3.5–4.5MB
~90K SLoC