Spec-Zone.ru › Elixir 1.12

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.12.0/Mix.Tasks.Test.Coverage.html

Spec-Zone.ru

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