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