2个版本

0.1.1 2023年4月8日
0.1.0 2023年4月8日

#16 in #tap


用于 tap_runner

MIT 许可证

70KB
1.5K SLoC

TAP解析器

此库实现了Test Anything Protocol(TAP)的解析器。

它仅实现了TAP版本14,应该实现所有功能,包括子测试。会忽略预处理指令。

examples中有两个示例,json将TAP文档输出为json格式,而parse输出调试表示。


lib.rs:

此包是Test Anything Protocol(TAP)的解析器。

它处理所有TAP 14功能,包括子测试。主要入口点是[TapParser]结构。

当确定行不能再是TAP文档的一部分时,解析器会忽略尾部行。

示例

use tap_parser::{TapParser, TapStatement, TapPlan, TapTest};

let document = "TAP version 14\n1..1\nok 1 - success\nnot ok 2 - fail";
let mut parser = TapParser::new();
assert_eq!(
    parser.parse(document).unwrap(),
    vec![
        TapStatement::Plan(TapPlan {
            count: 1,
            reason: None
        }),
        TapStatement::TestPoint(TapTest {
            result: true,
            number: Some(1),
            desc: Some("success"),
            directive: None,
            yaml: Vec::new(),
        }),
        TapStatement::TestPoint(TapTest {
            result: false,
            number: Some(2),
            desc: Some("fail"),
            directive: None,
            yaml: Vec::new(),
        }),
    ]
);

依赖关系

~275–790KB
~18K SLoC