Веб-приложения Clover во время выполнения

Здравствуйте, я разработчик веб-приложений на Java

У меня проблема, я хотел бы заставить клевер собирать данные во время выполнения для моих веб-приложений.

Мне удалось сделать это для одного приложения, добавив параметр в свой tomcat (-Dclover.initstring.basedir="[PATH TO CLOVER DB]").

Работало нормально.

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

Поэтому я попытался сделать то же самое, ссылаясь на объединенный файл БД. Это не работает - объединенный файл базы данных просто не обновляется во время выполнения.

Есть ли у вас идеи, почему или какие-либо идеи о том, как мне это сделать?

Спасибо

1 ответ

Решение

У вас есть несколько заблуждений здесь:

Во-первых, файлы базы данных Clover никогда не обновляются во время выполнения - они обновляются только во время сборки. Данные о покрытии записываются в отдельных файлах, размещенных вдоль файлов.db. Файлы.db записывают структуру источника вашего проекта и некоторые другие данные, необходимые для запуска инструментированного приложения.

Во-вторых, единственная причина слияния БД состоит в том, чтобы (сразу после) выполнить отчет по нему. После объединения.db покрытие не может быть собрано. Объединение не подходит до или во время запуска инструментированного приложения. Только уместно после.

Вот что вы должны сделать:

Для каждого проекта (соответствующего веб-приложению) добавьте явную строку инициализации, которая однозначно идентифицирует веб-приложение. например, для веб-приложения Foo есть строка инициализации foo.db, для веб-приложения Bar есть строка инициализации bar.db и т. д.

В проекте Foo build.xml:

<clover-setup initstring="foo.db"/>

В проекте бара build.xml:

<clover-setup initstring="bar.db"/>

Теперь имена файлов.db ваших веб-приложений будут уникальными, поэтому при добавлении -Dclover.inistring.basedir=/path/to/folder/containg/ / db / files / каждое веб-приложение не будет попирать другое.

Поэтому после запуска вашего веб-приложения в / path / to / folder / containg / / db / files / вы ожидаете увидеть что-то вроде этого:

foo.db
foo.db9bl74u_g1e05ktv
foo.db9bl74u_g1e05ktv.1
bar.db
bar.db3wl21k_g1fbp9pb
bar.db3wl21k_g1fbp9pb.1

После того, как вы проверили свои веб-приложения, вы можете сообщить о них. Вот когда вы можете слить. Вы бы объединились, если бы хотели создать единый отчет о покрытии для всех веб-приложений. Обычно нет другой причины для слияния.

Кстати, вы, вероятно, получите более быстрые ответы на forum.atlassian.com.

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