Idiomatic D. Юнит-тестирование с включенной оптимизацией в dub

В этом небольшом рецепте, который является очередным переводом уже ставшей классикой серии Idiomatic D, мы покажем, как можно с помощью dub собрать программу в режиме юнит-тестирования с включенной оптимизацией.

Итак, предоставим слово автору Idiomatic D.

Утилита dub является важнейшей частью современного языка программирования D. Однако, по умолчанию, в этой утилите не предлагается запуск юнит-тестов с оптимизациями.

Итак, как же избежать сюрпризов в итоговой версии ? Чтобы в этом случае сделал бы Кент Бек ?

Примечание переводчика: Кент Бек — известный программист и автор методик «экстремального программирования» и «разработки через тестирование». Кстати, рекомендую прочитать его труд «Экстремальное программирование».

В этом посте, мы раскроем секрет, ревностно охраняемый самыми успешными организациями в мире: проведение юнит-тестов с включенной и выключенной оптимизацией.

Изменения в dub.json

Создайте новый тип сборки с соответствующими флагами. Также это хороший способ познакомиться с правильными «buildTypes»:

"buildTypes": 
{
    "unittest-opt": 
    {
        "buildOptions": ["unittests", "optimize", "inline"]
    }
}

Поскольку здесь отсутствует флаг -release, то assert все равно остаются включенными вместе с остальным содержимым юнит-тестов.

(Пожалуйста, не называйте эту конфигурацию unittest-release. Поскольку флаг -release не присутствует, есть одна важная вещь: такое именование конфигурации усиливает путаницу между «релизом» и «оптимизацией»)

Запуск обеих версий

dub test 
dub test -b unittest-opt

aquaratixc

Программист-самоучка и программист-любитель

Добавить комментарий