Как указать функции или процедуры, которые GNATTest должен автоматически генерировать для проверки

Я работаю над огромным пакетом кода (написанным в основном на ada), который представляет собой полный беспорядок. Пока модульные тесты не применяются, и для всего существующего кода модульные тесты не должны реализовываться. Но наша команда решила, что весь новый код нужно внедрять вместе с тестами. В GPS есть возможность позволить GNATtest автоматически генерировать тестовые процедуры для всех функций и процедур в проекте. Но, как написано, мы должны исключить весь старый код из этой автоматической генерации.

Есть ли способ пометить функции и процедуры как «необходимо протестировать»?


person Ralph Müller    schedule 12.09.2019    source источник


Ответы (1)


Вы можете указать 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;

Когда вы устанавливаете его, вы должны добавить аспект (или прагму) Test_Case. Например:

procedure Something with
 Test_Case => ("Test_Something", Robustness);

Дополнительную информацию об этом аспекте/прагме можно найти в Документация GNAT. Ссылка на определение прагмы, но аспект работает точно так же.

person thindil    schedule 12.09.2019