Saga: проверяем покрытие кода тестами

в 10:42, , рубрики: jasmine, java, javascript, maven, тестирование, метки: , , ,

Если вы пишете на javascript и покрываете код юнит-тестами, то, вполне вероятно, вам будет интересно насколько хорошо он покрыт. А если в проекте используется Maven, то хочется получать эту информацию при каждой сборке.

Итак, Saga — анализатор покрытия кода со вкусностями:

  • работает с большинством тест-фреймворков
  • консольная версия
  • maven-плагин версия (на официальном централе)
  • красивые и удобные отчёты

Saga: проверяем покрытие кода тестами

Что нужно для начала

Предполагается, что у вас уже есть тесты и некие html-файлы для их запуска (TestRunner).
Если нету, советую посмотреть на фреймворк Jasmine.

Консольная версия

Свежую сборку со всеми зависимостями можно найти на code.google.com или собрать из исходников на github.com. И запустить из папки проекта, например так:

java -jar saga-cli-1.0.5-jar-with-dependencies.jar -b tests/ -o coverage/ -i **/*Test*.html

Назначение этих и других ключей можно посмотреть в документации.

Maven-plugin

Чтобы подключить Saga, достаточно добавить следующий код в pom.xml:

<plugin>
    <groupId>com.github.timurstrekalov</groupId>
    <artifactId>saga-maven-plugin</artifactId>
    <version>1.0.5</version>
    <executions>
        <execution>
            <phase>verify</phase>
            <goals>
                <goal>coverage</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <baseDir>${testsBaseDir}</baseDir>
        <includes>
            **/*Test*.html
        </includes>
        <outputDir>${project.build.directory}/coverage</outputDir>
    </configuration>
</plugin>

Плагин будет скачан с центрального репозитория Maven.
Подробнее о конфигурационных опциях можно почитать в документации.

Будущее проекта

Разработчик Тимур Стрекалов открыт для предложений и готов вносить улучшения. Уже несколько пользователей оставили отзывы, благодаря которым были исправлены несколько багов. Написать можно на странице проекта на GitHub.

Автор: javascript


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js