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"])
从该 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 许可证发布,该许可证的副本可在此存储库中获得。