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