1 个不稳定版本
0.0.0-sol15 | 2019 年 7 月 27 日 |
---|
#23 in #directive
91KB
2.5K SLoC
概述
此包实现了统一的测试基础设施,允许开发者将测试编写为独立的 Move IR 程序,将它们发送到整个管道,并使用内联指令检查每个阶段的输出。
如何运行功能测试
在此包中运行 cargo test
,或在仓库的任何位置运行 cargo test -p functional_tests
。 cargo test
还接受过滤器:运行具有 foo
的名称的测试 cargo test foo
。
添加新的测试
要添加新的测试,只需在 tests/testsuite
中创建一个新的 .mvir 文件。测试框架将递归地搜索目录中的所有 move ir 源文件,并将每个源文件注册为测试用例。
使用指令检查测试输出
指令本质上是对测试基础设施有特殊意义的注释。它们可以用来定义应出现在测试输出中的模式。如果测试输出与指定的模式不匹配,则测试被视为失败。
测试输出是一个类似于日志的结构,由每个管道阶段输出的数据结构的调试打印组成。如果有错误,它是错误的调试打印。好的测试应该只匹配关键细节,例如错误的名称,并省略不重要的细节,例如格式、空格、括号等。
如果没有指定指令,测试基础设施要求测试程序通过管道的各个阶段。任何错误都将导致测试失败。
有关更多示例,请参阅 tests/testsuite/examples
。
依赖关系
~75MB
~1.5M SLoC