Why does sbt-scoverage report java.lang.RuntimeException: Duplicate mappings for JavaScript files?

Я использую плагин sbt-scoverage для проекта, написанного на Play Framework.

Я сталкиваюсь со следующим java.lang.RuntimeException: Duplicate mappings ошибка:

[scoverage]: Instrumentation completed [35097 statements]
[scoverage]: Written instrumentation file [/Users/project/target/scala-2.10/scoverage-data/scoverage.coverage.xml]
[scoverage]: Writing measurements data to [/Users/project/target/scala-2.10/scoverage-data]
...
[info] Compiling 49 Scala sources to /Users/project/target/scala-2.10/test-classes...
java.lang.RuntimeException: Duplicate mappings:
/Users/project/target/scala-2.10/scoverage-classes/services-main.js
from
/Users/project/target/scala-2.10/resource_managed/main/public/javascripts/global/services/services-main.js
/Users/project/target/scala-2.10/resource_managed/main/public/javascripts/kiosk/global/services/services-main.js
/Users/project/target/scala-2.10/scoverage-classes/global.min.css
from......

Я предполагаю, что он пытается передать service-main.js откуда-то в target под scoverage-classes, Я не собираюсь запускать scoverage для любого файла JavaScript, поэтому я включил следующий параметр:

ScoverageKeys.excludedPackages in ScoverageCompile := ".views.;.javascripts.;.assets.;.js.;.resource_managed."

Это ничего не меняет - ошибка сохраняется. Как я могу дать команду scoverage игнорировать файлы JavaScript?

2 ответа

Это всего лишь предположение, но стоит проверить, решает ли это проблему.

Согласно исключить классы и пакеты:

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

Регулярные выражения сопоставляются с полным именем класса и должны соответствовать всей строке для вступления в силу.

Любые подходящие классы не будут инструментированы или включены в отчет о покрытии.

Я думаю, что используемые вами регулярные выражения неверны, и, поскольку они не совпадают, они не имеют никакого эффекта. использование .* не . следующее:

ScoverageKeys.excludedPackages in ScoverageCompile := ".*javascripts.*;.*\.js"

Эта ошибка была исправлена ​​в выпуске 1.0.0. Обратите внимание, что конфигурация изменилась, поэтому обязательно проверьте файл readme (особенно, команда для запуска изменилась с sbt scoverage:test в sbt coverage test и плагин стал автоматическим плагином, так что вам больше не нужно добавлять настройки инструментов).

https://github.com/scoverage/sbt-scoverage

Другие вопросы по тегам