我如何指定函数或过程 GNATTest 应自动生成测试用例

Ral*_*ler 5 ada gnat gnat-gps aunit

我正在开发一个巨大的代码包(主要是用 ada 编写的),这是一个极其混乱的情况。到目前为止,尚未应用任何单元测试,并且对于所有现有代码,不得实施单元测试。但我们的团队决定,所有新代码都应该与测试一起实现。在 GPS 中,可以让 GNATtest 自动生成项目中所有功能和程序的测试程序。但正如所写,我们必须从自动生成中排除所有旧代码。

有没有办法将函数和过程标记为“需要测试”?

thi*_*dil 4

您可以gnattest通过添加参数来指示仅为选定的过程或函数创建测试--test-case-only。我不知道如何在 GPS 中设置它。终端中的整个命令看起来是这样的:

gnattest -P yourproject.gpr --test-case-only

您还可以将此参数添加到 .gpr 文件中:

    package GnatTest is
       for GnatTest_Switches use ("--test-case-only");
    end GnatTest;
Run Code Online (Sandbox Code Playgroud)

当你设置它时,你必须添加aspect(或pragma)Test_Case。例如:

procedure Something with
 Test_Case => ("Test_Something", Robustness);
Run Code Online (Sandbox Code Playgroud)

您可以在GNAT 文档中找到有关此方面/编译指示的更多信息。Link 是指向 pragma 定义,但方面的工作方式完全相同。