Turnt是命令行的一个简单的expectstyle测试工具
turnt的Python项目详细描述
小型统一流道N'测试仪(Turnt)
Turnt是一个受Cram和{a2}启发的简单测试工具。 其思想是每个测试都由一个输入文件和一个或多个输出文件组成。 您需要在输入文件上运行命令,并检查输出是否等于预期的输出文件。在
要使用它:
- 创建测试文件。在
- 决定需要对此输入运行什么命令。
有两种选择:
{{{1}你可以把一个测试文件放在cd2}旁边。
或者可以将其嵌入测试文件本身的注释中:使用
CMD: mycmd {filename}
。在 - 得到初始输出。
运行
turnt --save foo.t
在foo.out
中生成预期的输出。 您需要将这些输出文件与测试一起签入版本控制。在 - 运行测试。
使用
turnt foo.t
检查测试输出。 如果测试失败,请添加--diff
来比较实际输出和预期输出。在
安装
这是一个python3工具。 用pip安装它:
$ pip install --user turnt
或者,如果您想在Turnt上工作,您可以安装Flit,克隆此存储库,然后键入以下内容以获得带有符号链接的“实时”安装:
^{pr2}$细节
这些选项在turnt.toml
中提供:
command
。 这是对每个测试输入运行的shell命令。在output
。 这是从扩展名到输出文件的映射,以从每个测试中收集。 例如,使用output.txt = "my_output.txt"
在每个文本扩展名之后收集my_output.txt
,并将其保存在<test-name>.txt
中。 使用-
指示命令的标准输出,2
表示其标准错误。 默认值类似于output.out = "-"
,即捕获标准输出并将其保存在<test-name>.out
中。 如果您想忽略标准输出,您可以自己包含它,也可以省略。在return_code
。 退出命令的预期状态。默认为0。在diff
。 用于turnt --diff
输出的命令。 默认值是diff --new-file --unified
。 尝试git --no-pager diff --no-index
以获得彩色输出。在
等效地,您可以在测试文件本身中嵌入选项:
CMD: <command>
重写配置中的command
。在OUT: <ext> <filename>
重写配置中的output
。 您可以这样指定多个文件:每个文件一行。在ARGS: <arguments>
。向配置的命令添加参数(见下文)。在RETURN: <code>
。预期的退出状态。在
在命令和文件名中,您可以使用某些模式,这些模式将被有关测试的详细信息替换:
{filename}
:测试文件的名称(不包含目录部分)。在{base}
:只是测试文件的基名(没有扩展名)。在{args}
:在测试文件中使用ARGS:
指定的额外参数。在
如果测试需要多个文件,可以使用目录而不是文件。
输出将放在测试目录中,而不是与之相邻。
输出文件名在该目录中类似于out.ext
。
有两种配置仅用于处理目录测试:
out_base
。 目录测试中输出文件的基名称:默认情况下,out
。在opts_file
。 要在目录测试中读取以解析内联选项的文件名。在
命令行
以下是命令行选项:
--save
:将每个测试的当前输出视为“正确”的输出,并将其保存到要签入版本控制的输出文件中。在--diff
:显示每个测试的实际输出和预期输出之间的差异。在--verbose
或-v
:禁用Turnt的默认行为,它将禁止测试命令的stderr输出。结果更有用,但更难阅读。在--print
或-p
:不要检查测试结果,只需运行命令并直接显示输出。当交互迭代测试时,这可能很有用(尤其是与-v
)结合使用。在--args
或-a
:重写插入命令的args
字符串,该字符串通常来自文件内注释。在
轻敲
Turnt默认输出TAP结果。 为了使输出更易于阅读,您可以将其通过管道传输到类似tap-difflet的工具中:
$ npm install -g tap-difflet
$ turnt *.t | tap-difflet
作者
Turnt在Adrian Sampson和{a8}之间。 我们用它来测试Capra中的各种研究编译器。 许可证是MIT。在
- 项目
标签: