11 个版本 (稳定)

1.2.4 2024年7月19日
1.2.2 2024年6月28日
1.1.0 2024年1月10日
1.0.0 2023年9月24日
0.1.0 2020年11月8日

#1116 in 解析器实现

Download history 97/week @ 2024-04-26 84/week @ 2024-05-03 246/week @ 2024-05-10 149/week @ 2024-05-17 80/week @ 2024-05-24 124/week @ 2024-05-31 127/week @ 2024-06-07 232/week @ 2024-06-14 217/week @ 2024-06-21 451/week @ 2024-06-28 168/week @ 2024-07-05 111/week @ 2024-07-12 331/week @ 2024-07-19 361/week @ 2024-07-26 255/week @ 2024-08-02 520/week @ 2024-08-09

每月 1,514 次下载
2 crate 中使用

BSD-2-Clause

40KB
725

CI Crates.io Docs License MSRV

JUnit-Parser

Rust 库,用于解析 JUnit XML 文件

文档

示例

从从 reader 读取的 JUnit XML 数据创建一个 TestSuites 结构

use std::io::Cursor;
let xml = r#"
<testsuite tests="3" failures="1">
  <testcase classname="foo1" name="ASuccessfulTest"/>
  <testcase classname="foo2" name="AnotherSuccessfulTest"/>
  <testcase classname="foo3" name="AFailingTest">
    <failure type="NotEnoughFoo"> details about failure </failure>
  </testcase>
</testsuite>
"#;
let cursor = Cursor::new(xml);
let r = junit_parser::from_reader(cursor);
assert!(r.is_ok());
let t = r.unwrap();
assert_eq!(t.suites.len(), 1);
let ts = &t.suites[0];
assert_eq!(ts.tests, 3);
assert_eq!(ts.failures, 1);
assert_eq!(ts.cases.len(), 3);
assert!(ts.cases[0].status.is_success());
assert!(ts.cases[2].status.is_failure());

功能

  • serde — 在 Test* 结构上启用 derive(serde::{Serialize,Deserialize})
  • properties_as_hashmap(默认启用)— 将属性元素解析为 hashmap
  • properties_as_vector(默认启用)— 将属性元素解析为 vector

许可

本项目可在以下许可条款下使用:[BSD-2-Clause 许可](https://github.com/borisfaure/junit-parser/blob/e1548c65eb81129181bcb4317f443781b6e5b512/LICENSE.txt)。

依赖

~1.5–2.2MB
~41K SLoC