#testing #directive #libra #output #stage #pipeline #functional-testing

solana_libra_functional_tests

Solana Libra 功能测试

1 个不稳定版本

0.0.0-sol152019 年 7 月 27 日

#23 in #directive

Apache-2.0

91KB
2.5K SLoC

概述

此包实现了统一的测试基础设施,允许开发者将测试编写为独立的 Move IR 程序,将它们发送到整个管道,并使用内联指令检查每个阶段的输出。

如何运行功能测试

在此包中运行 cargo test,或在仓库的任何位置运行 cargo test -p functional_testscargo test 还接受过滤器:运行具有 foo 的名称的测试 cargo test foo

添加新的测试

要添加新的测试,只需在 tests/testsuite 中创建一个新的 .mvir 文件。测试框架将递归地搜索目录中的所有 move ir 源文件,并将每个源文件注册为测试用例。

使用指令检查测试输出

指令本质上是对测试基础设施有特殊意义的注释。它们可以用来定义应出现在测试输出中的模式。如果测试输出与指定的模式不匹配,则测试被视为失败。

测试输出是一个类似于日志的结构,由每个管道阶段输出的数据结构的调试打印组成。如果有错误,它是错误的调试打印。好的测试应该只匹配关键细节,例如错误的名称,并省略不重要的细节,例如格式、空格、括号等。

如果没有指定指令,测试基础设施要求测试程序通过管道的各个阶段。任何错误都将导致测试失败。

有关更多示例,请参阅 tests/testsuite/examples

依赖关系

~75MB
~1.5M SLoC