Coverage format » History » Revision 15
Revision 14 (Viktoria Kopach, 10/06/2014 06:38 PM) → Revision 15/19 (Viktoria Kopach, 10/07/2014 06:12 PM)
h1. Формат файла с информацией о покрытии Описывается на XML. <pre> <?xml version="1.0" encoding="UTF-8"?> <coverageInfo> <reqcoverage qid="уникальный_идентификатор_требования_или_тестовой_ситуации"> <covered_by uri="путь_к_покрывающему_элементу" hits="1"/> </reqcoverage> <reqcoverage qid="уникальный_идентификатор_требования_или_тестовой_ситуации"> <covered_by uri="путь_к_покрывающему_элементу"/> </reqcoverage> <error [name="имя_ошибки"] testuri="uri_элемента_covered_by" [uri="ссылка_на_описание_ошибки"]> [<violates qid="уникальный_идентификатор_требования_или_тестовой_ситуации"/>]* [<description [format="вид_описания_ошибки"]>описание_ошибки</description>] </error> </coverageInfo> </pre> Здесь: Квадратными скобками обозначены опциональные параметры. h2. coverageInfo *coverageInfo* - +*coverageInfo*+ - может быть только один экземпляр в файле. Он содержит вложенные XML-элементы *reqcoverage* (один или несколько) и *error* (может не быть, может быть один или несколько). - +*reqcoverage*+ - элемент-ребенок для *coverageInfo*. Должен быть задан отдельно для h2. reqcoverage Для каждого покрытого Requality-элемента. (Непокрытые Requality-элемента должен быть свой XML-элемент *reqcoverage*. Непокрытые узлы не описываются никак.) Содержит вложенные XML-элементы вовсе. *covered_by* (один или несколько). Каждому вложенному *covered_by* должен соответствует одна тестовая процедура или тест. - +*covered_by*+ - элемент-ребенок для *reqcoverage*. Может Каждый *reqcoverage* может содержать несколько XML-элементов *covered_by* в зависимости от того, сколько *covered_by*, если его покрывают несколько тестовых процедур или тестов покрывают соответствующий ему Requality-элемента. Каждый *covered_by* - это один покрывающий Requality-элемент. *covered_by* имеет атрибут *hits*. тестов. *hits* - +*hits*+ - атрибут XML-элемента *covered_by*, Атрибут *hits* является опциональным. Указывает опциональным, он указывает количество упоминаний этого требования *reqcoverage* в тесте *covered_by*. тесте. - +*error*+ - элемент для описания ошибки, полученной h2. error Элемент *error* представляет собой ошибки полученные в результате выполнения теста. тестов. Может содержать один элемент *description* description с описанием ошибки. Может включать один или несколько элементов *violates* violates в ситуации, ситуации когда можно определить какие именно требования нарушает ошибка. - +*description*+ - текстовое описание ошибки. - +*violates*+ - требование, которое нарушает ошибка. Каждый элемент *violates* соответствует одному нарушенному требованию *_уникальный_идентификатор_требования_или_тестовой_ситуации_* это user-visible-name(element) или qualifying-id(element) покрываемого элемента * user-visible-name(element) - это имя элемента, если оно есть (то есть если поле name в Properties view у этого элемента не пустое), иначе это user-visible-name(element.parent)/id, то есть сначала user-visible-name родительского элемента, потом id - идентификатор элемента (в качестве разделителя использовать ''/''). Например: "TR-FMF-01-01-002/TR-FMF-01-01-002_T01" * qualifying-id(element) - это полный путь к элементу, начиная с корневого элемента (Requirements), в качестве разделителя используется ''/''. Например: "Requirements/01/MyRequirement01" *_путь_к_покрывающему_элементу_* * если описывается покрытие тестовых ситуаций тестовыми процедурами, то это путь к шагу тестовой процедуры. ** Если тестовая процедура находится в том же проекте, то путь записывается без протокола, например: "/TestProcedures/01/TestStep04" Здесь 01 - идентификатор тестовой процедуры, 04 - номер шага тестовой процедуры. ** Если тестовая процедура находится в другом проекте Requality, то путь записывается следующим образом: "requality://ProjectName/TestProcedures/01/TestStep04" Здесь ProjectName - имя проекта, где находится тестовая процедура. * если описывается покрытие тестовых ситуаций тестами, то это путь к тесту, например: "file:///home/user/work/test1.c#12" *имя_ошибки* - опциональный параметр, представляет собой отображаемое имя ошибки. В случае если не определен, используется имя "error"+порядковый_номер_ошибки. *uri_элемента_covered_by* - путь к одному из тестов, описанному в covered_by элементе *ссылка_на_описание_ошибки* - опциональный параметр, путь к файлу с подробной информацией об ошибке *уникальный_идентификатор_требования_или_тестовой_ситуации* - путь к требованию или тестовой ситуации, соответствующий *qualifying-id(element)* *format="вид_описания_ошибки"* - формат описания ошибки, есть два возможных представления, соответвующих "вид_описания_ошибки" - представление в формате html или plain соответствующий тексту без форматирования. Для последнего варианта все html теги будут отображаться в виде текста. *описание_ошибки* представляет собой описание ошибки, при этом для формата html допускается использование html тегов для форматирования текста. Пример описания покрытия тестовыми процедурами: <pre> <?xml version="1.0" encoding="UTF-8"?> <coverageInfo> <reqcoverage qid="TR-FMF-01-01-001/TR-FMF-01-01-001_T02"> <covered_by uri="/TestProcedures/01/TestStep05" hits="1"/> </reqcoverage> <reqcoverage qid="TR-FMF-01-01-001/TR-FMF-01-01-001_T01"> <covered_by uri="/TestProcedures/01/TestStep03" hits="1"/> </reqcoverage> <reqcoverage qid="TR-FMF-01-01-001"> <covered_by uri="/TestProcedures/01/TestStep01" hits="1"/> </reqcoverage> <reqcoverage qid="TR-FMF-01-01-002/TR-FMF-01-01-002_T01"> <covered_by uri="/TestProcedures/01/TestStep02" hits="1"/> </reqcoverage> <reqcoverage qid="TR-FMF-01-01-006"> <covered_by uri="/TestProcedures/01/TestStep04" hits="1"/> </reqcoverage> </coverageInfo> </pre>