5 个版本
使用旧的 Rust 2015
0.2.6 | 2019年3月1日 |
---|---|
0.2.5 | 2018年10月30日 |
0.2.2 | 2018年10月22日 |
0.2.1 | 2018年10月15日 |
0.1.0 | 2017年12月13日 |
#469 in 测试
530KB
5.5K SLoC
包含 (DOS 可执行文件, 115KB) test/wintests/writetest.exe, (DOS 可执行文件, 115KB) test/lintests/writetest.exe
飞地:工厂测试基础设施
飞地是一个用 Rust 编写的工厂测试基础设施。测试被设计成易于在任何你关心的语言中编写,因为飞地会捕获你的程序输出并将其全部记录下来。一旦你的测试完成,以零返回码退出表示成功,或非零表示失败。
构建
要构建,请安装 Rust。要构建最新版本,运行
cargo install exclave
要从源代码构建,检出此存储库,切换到根目录,并运行
cargo build
运行
要运行,你必须使用 "-c" 参数指定配置目录。例如,如果你的配置目录在 /etc/exclave,则运行
exclave -c /etc/exclave
或者,如果你正在进行开发并使用 cargo,则运行
cargo run -- -c /etc/exclave
如果飞地检测到它与终端连接,你将看到一个所有单元的实时视图。如果没有连接到终端(即如果它在 systemd 或 init 下运行),那么飞地会将所有单元转换记录到 stdout,除非指定了 "-q" 选项。
定义配置
示例配置目录位于 "test/config" 下。你可以使用它来开始。你可以使用 "exclave -c test/config" 运行它。
单元配置语言在 doc/Units.md 中定义。
编写测试
测试可以编写在任何语言中,但必须确保安装了所需的解释器(如果有的话)。
将任何进度记录到 stdout,并将任何错误记录到 stderr。
当某个特定测试完成时,将测试结果打印到 stdout 并退出。如果测试成功,退出 0。如果测试失败,返回非零。
测试可以超时,如果发生这种情况,你的测试将首先收到 SIGTERM 信号。在可配置的时间内之后,你的测试将收到 SIGKILL 信号。
所有测试都在它们自己的会话中运行,并连接到伪终端 (PTY)。这将消除 printf 等事物通常发生的任何缓冲。
编写接口、记录器和触发器
接口、记录器和触发器都必须通过自定义流与飞地交互。进程间通信在 doc/IPC.md 中文档化。
依赖关系
~11–20MB
~275K SLoC