8 个版本

0.1.7 2024年6月23日
0.1.6 2021年10月30日
0.1.5 2021年6月26日
0.1.4 2021年4月22日

#5 in #test-suite

Download history 2/week @ 2024-06-14 210/week @ 2024-06-21 4/week @ 2024-06-28 62/week @ 2024-07-26 5/week @ 2024-08-02

67 个月下载量

GPL-3.0+

74KB
2.5K SLoC

用于编写集成和端到端测试计划的库。结果可以以嵌套的 TAPjunit 以及一些允许嵌套 testsuite 元素的.junit方言格式输出。

用法

use ensc_testsuite::PlanRunner;

#[test]
fn test() {
    let p = PlanRunner::new();
	p.run("init", |p| {
		p.ok("create database", || database.create());

		let admin: Admin =
		p.ok("create admin", || database.create_admin()).into();

		p.fail("create 2nd admin",  || database.create_admin());
		p.eq("exactly one admin", 1, database.count_admin());

		p.new_plan("some other test")
			.set_skip(easter_is_at_xmas(), "strange event")
			.run(|p| {
				p.ok("....", || true);
			});
	});

	// not really necessary
	p.destruct();
}

当运行 cargo test 时,必须设置两个环境变量

  • TESTSUITE_OUTPUT: 输出文件的基名;根据选择的格式,会附加如 .tap.junit 这样的后缀

  • TESTSUITE_FORMAT: 输出格式的逗号分隔列表。支持以下值

    • tap: 嵌套的 TAP
    • junitjunit-flat: junit 格式
    • junit-nested: 允许嵌套 testsuite 元素的.junit
    • json: 一些未指定的.json表示形式

依赖

~5–14MB
~196K SLoC