2个版本
0.1.1 | 2023年4月8日 |
---|---|
0.1.0 | 2023年4月8日 |
#16 in #tap
用于 tap_runner
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