#factory #running #infrastructure #unit #log #directory

app exclave

工厂测试的前端界面

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 测试

BSD-3-Clause

530KB
5.5K SLoC

Rust 5K SLoC // 0.0% comments PowerShell 448 SLoC // 0.5% comments Shell 82 SLoC // 0.1% comments C 52 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