Scala Sbt - Измерение времени задачи для подпроектов. - PullRequest
1 голос
/ 17 апреля 2020

У нас есть Scala -Sbt-Project с большим количеством подпроектов.

Обычно мы вызываем задачу compile или test в root (агрегат). Я ищу способ, как получить общее представление об использованном времени задач для каждого подпроекта.

Поскольку (особенно тесты) слишком медленные (4,5 часа), я хочу увидеть , какие подпроекты являются такими медленными. Меня особенно интересует компиляция тестовой фазы. У кого-нибудь есть подсказка?

Есть ли скрытая функциональность в sbt или в скаляре, или есть где-нибудь хороший плагин, чтобы узнать, где все время ели?

Было бы очень приятно иметь представление об использованном времени после завершения всех проектов.

1 Ответ

1 голос
/ 17 апреля 2020

Попробуйте настроить репортер , чтобы показать длительность теста с флагом D, например

Test / testOptions += Tests.Argument("-oD")

распечатывает с использованием стандартного репортера вывода

[info] ExampleSpec:
[info] The config map
[info] - should contain target directory used by sbt (18 milliseconds)

Обратите внимание на (18 milliseconds).

Также рассмотрим Как профилировать время, затраченное на задачу в SBT . Например, в проекте root создайте .jvmopts файл с записью

-Dsbt.task.timings=true
...