Веб-приложения Clover во время выполнения - PullRequest
0 голосов
/ 28 октября 2009

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

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

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

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

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

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

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

Спасибо

1 Ответ

4 голосов
/ 31 октября 2009

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

Во-первых, файлы Клевер дБ никогда не обновляются во время выполнения - только когда-либо обновляются во время сборки. Данные о покрытии записываются в отдельных файлах, размещенных вдоль файлов .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

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

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

...