#file-tree #folders #assert #yaml #testing

dev tree-fs

提供了一种方便的方式来创建文件树

1 个不稳定版本

0.1.0 2023 年 12 月 2 日

#885文件系统

Download history 71/week @ 2024-03-14 31/week @ 2024-03-21 22/week @ 2024-03-28 36/week @ 2024-04-04 38/week @ 2024-04-11 20/week @ 2024-04-18 42/week @ 2024-04-25 52/week @ 2024-05-02 34/week @ 2024-05-09 43/week @ 2024-05-16 137/week @ 2024-05-23 100/week @ 2024-05-30 137/week @ 2024-06-06 146/week @ 2024-06-13 73/week @ 2024-06-20 33/week @ 2024-06-27

404 次每月下载
5 crates 中使用

Apache-2.0

9KB
101 代码行

tree-fs

通常,测试场景涉及与文件系统的交互。tree-fs 为创建满足测试需求定制的文件系统树提供了一个便捷的解决方案。此库提供

  • 一种简单的方法来生成具有递归路径的树。
  • 在临时文件夹内创建树。
  • 使用 YAML 或构建器创建树的能力。

用法

查看用法示例([这里](./examples))

从构建器

use tree_fs::Tree;

fn main() {
    let res = Tree::default()
        .add("test/foo.txt", "bar")
        .add_empty("test/folder-a/folder-b/bar.txt")
        .create();

    match res {
        Ok(res) => {
            println!("created successfully in {}", res.display());
        }
        Err(err) => {
            println!("creating tree files finish with errors: {err}");
        }
    }
}

使用 YAML 文件

use std::path::PathBuf;

fn main() {
    let yaml_path = PathBuf::from("tree-create/tests/fixtures/tree.yaml");

    let res = tree_fs::from_yaml_file(&yaml_path);

    match res {
        Ok(res) => {
            println!("created successfully in {}", res.display());
        }
        Err(err) => {
            println!("creating tree files finish with errors: {err}");
        }
    }
}

使用 YAML 字符串

use std::fs;

fn main() {
    let content =
        fs::read_to_string("tree-create/tests/fixtures/tree.yaml").expect("Unable to read file");

    let res = tree_fs::from_yaml_str(&content);

    match res {
        Ok(res) => {
            println!("created successfully in {}", res.display());
        }
        Err(err) => {
            println!("creating tree files finish with errors: {err}");
        }
    }
}

依赖项

~0.6–1.6MB
~34K SLoC