3个不稳定版本
0.2.0 | 2023年6月2日 |
---|---|
0.1.1 | 2023年5月2日 |
0.1.0 | 2023年4月9日 |
#428 in 测试
每月 33 次下载
29KB
491 行
namaka
快速开始
nix flake init -t github:nix-community/namaka
nix develop # add namaka to the environment
namaka check # run checks
namaka review # review pending snapshots
版本控制
Namaka遵循语义版本控制。破坏性变更可能在任何时间发生在主分支上,因此建议将namaka固定到特定的标签。可在发行版页面找到可用版本列表。
使用方法
Usage: namaka [OPTIONS] [DIR] <COMMAND>
Commands:
check Wrapper around `nix flake check` to prepare snapshots for failed tests [aliases: c]
clean Remove unused and pending snapshots [aliases: cl]
review Review pending snapshots and selectively accept or reject them [aliases: r]
help Print this message or the help of the given subcommand(s)
Arguments:
[DIR] Change to this working directory
Options:
-c, --cmd <CMD>... Command to run instead of `nix flake check`
-h, --help Print help (see more with '--help')
-V, --version Print version
加载
类型:{ ... } -> { }
对haumea.load
的包装,用于从目录加载快照测试。
如果任何测试失败,则抛出错误,否则总是返回{ }
。 load { src = ./tests; }
将从tests
目录加载测试,该目录应如下组织
tests
├─ foo/
│ ├─ expr.nix
└─ bar/
├─ expr.nix
└─ format.nix (optional)
expr.nix
包含您想要测试的Nix表达式。
format.nix
包含一个指定表达式如何序列化的Nix字符串。以下是一些可能的值
"json"
使用builtins.toJSON
序列化表达式(默认)"pretty"
使用lib.generators.toPretty { }
序列化表达式"string"
按原样序列化字符串
请参阅 测试目录 或模板之一以获取示例。忽略 _snapshots
目录,因为它是由 namaka 自动生成的。
其余的可用选项在 haumea.load
中有文档说明,因为它们将完全以相同的方式工作。
配置
namaka
将尝试在工作目录中读取 namaka.toml
。以下是一个示例配置文件(所有字段都是可选的)
# namaka.toml
# change the working directory
# this stacks with the command line option
#`namaka check bar` will read `bar/namaka.toml` and change the working directory to `bar/foo`
dir = "foo"
[check]
# the command to run with `namaka check`
# defaults to `nix flake check --extra-experimental-features "flakes nix-command"`
cmd = ["nix", "eval", "./dev#checks"]
[eval]
# the command to run with `namaka review` and `namaka clean`
# defaults to `nix eval ./checks --extra-experimental-features "flakes nix-command"`
cmd = ["nix", "flake", "check"]
快照测试
快照测试是一种允许您在不手动编写参考值的情况下编写测试的策略。而不是 assert foo == bar;
,您只需拥有 foo
,然后 namaka 将将 bar
存储在快照文件中,并要求您使用 namaka review
更新它。
要开始,您可以遵循 快速入门指南,或参阅 load 获取更详细的文档。
相关工具
依赖项
~23–39MB
~551K SLoC