Lite

Lite 是一个用于类编译器 Swift 程序的测试运行器。它的结构类似于 LLVM 的 lit,但配置选项要少得多。它的优势是可以很容易地从 Swift 项目中使用。

用法

要使用 lite 作为测试工具,您需要在您的 Package.swift 文件中添加 Lite 作为依赖项。

.package(url: "https://github.com/silt-lang/Lite.git", from: "0.0.1")

然后,您需要在您的 Package.swift 中添加一个名为 lite 的 target,它依赖于 Lite 支持库 LiteSupport

.target(name: "lite", dependencies: ["LiteSupport"])

创建 lite Target

从该 target 的 main.swift 文件中,调用 runLite(substitutions:pathExtensions:testDirPath:testLinePrefix:parallelismLevel:)。此调用是 lite 测试运行的主要入口点。

它接受 5 个参数

参数 描述
substitutions 要在每个运行行内进行替换的映射。 替换会查找以 '%' 开头的字符串,并将整个字符串替换为替换值。
pathExtensions Lite 在发现测试时应搜索的路径扩展名集合。
testDirPath Lite 应该在其中查找测试的目录。 Lite 将在此目录中执行深度搜索,查找扩展名存在于 pathExtensions 中且具有有效 RUN 行的所有文件。
testLinePrefix 文件中 RUN: 之前的注释前缀。 这几乎总是您特定语言的行注释语法。
parallelismLevel 指定应用于测试运行过程的并行度。 默认值为 .none,但您可以提供 .automatic 以使用可用的机器核心,或者提供 .explicit(n) 以指定显式数量的并行测试

注意:此存储库中存在 Lite 的一个示例使用者,名为 lite-test

定义完之后,您就可以开始运行测试器了!

您可以使用以下命令独立运行或通过 CI 运行它

swift run lite

定义测试

Lite 测试表示为 bash shell 命令,这些命令写在源文件中的注释中(通常在顶部)。

这些命令可以非常简单

// RUN: %my-prog %s

或者非常复杂

// RUN: %my-prog %s --arg1 foo --directory %T --output-file %t && diff %T/foo.out %t

您还可以在一个文件中包含多个 RUN 行,所有这些行都将使用同一组替换。

Lite 带有 4 个标准替换

替换
%s 当前源文件路径,带引号。
%S 当前源文件所在的目录,带引号。
%T 一个临时目录,将在替换时创建。
%t 一个临时文件(多个 %t 将引用同一个文件),位于 %T 指定的目录中,带引号。

作者

Harlan Haskins (@harlanhaskins)

Robert Widmann (@codafi)

许可证

本项目已根据 MIT 许可证发布,该许可证的副本可在此存储库中获得。