Spec-Zone.ru › Elixir 1.11

mix test.coverage

Создание отчета по покрытию тестов из экспортированного результата.

При использовании --cover с инструментарием покрытия по умолчанию, инструмент покрытия поддерживает опцию :export для экспорта результатов покрытия в директорию. Это полезно, когда есть несколько наборов тестов (например, в приложении-оболочке) или когда один набор тестов разделен на несколько запусков при использовании опции mix test --partitions N.

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

Пример: агрегация разделенных запусков

Если вы разделяете свои тесты на несколько запусков, вы можете объединить отчет, как показано ниже:

MIX_TEST_PARTITION=1 mix test --partitions 2 --cover
MIX_TEST_PARTITION=2 mix test --partitions 2 --cover
mix test.coverage

Это работает, потому что опция --partitions автоматически экспортирует результаты покрытия.

Пример: агрегация отчетов о покрытии из всех дочерних приложений-оболочек

Если вы запускаете mix test.coverage внутри оболочки, она автоматически соберет экспортированные результаты покрытия со всех дочерних приложений-оболочек — при условии, что результаты покрытия были экспортированы, например, так:

# from the umbrella root
mix test --cover --export-coverage default
mix test.coverage

Конечно, если вы хотите фактически разделить тесты, вы также можете сделать следующее:

# from the umbrella root
MIX_TEST_PARTITION=1 mix test --partitions 2 --cover
MIX_TEST_PARTITION=2 mix test --partitions 2 --cover
mix test.coverage

С другой стороны, если вы хотите разделить тесты, но отчеты по каждому приложению, вы можете сделать следующее:

# from the umbrella root
MIX_TEST_PARTITION=1 mix test --partitions 2 --cover
MIX_TEST_PARTITION=2 mix test --partitions 2 --cover
mix cmd mix test.coverage

При запуске test.coverage из корня оболочки, она будет использовать конфигурацию :test_coverage из корня оболочки.

Наконец, обратите внимание, что само покрытие не измеряется по самим проектам. Например, если проект B зависит от проекта A и если в проекте A есть код, который выполняется только из проекта B, эти строки не будут помечены как покрытые, что важно, поскольку эти проекты должны разрабатываться и тестироваться изолированно.

© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/mix/1.11.2/Mix.Tasks.Test.Coverage.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API