SourceForge.net Logo
prevtopnext
Система тестирования izh_test
    Виды тестов
        Агрегатные тесты
Введение

Агрегатные тесты - это тесты, которые состоят из других тестов. При помощи них можно объединять набор тестов в большие пакеты и тестировать их как единое целое.

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

Если описаний именованных сущностей слишком много или их хочется использовать несколько раз в разных файлах-описателях тестов, то такие описания можно выделить в отдельный файл и подключать их при помощи конструкции include/declarations_from

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

Переменные подстановки - задают текстовые значения переменных, которые потом могут быть использованы в полях описателей тестов как %имя_переменной%.

Задаются обычно при помощи описателя в агрегатном фильтре:
<params>
  <par>
    <name>variable_name1</name>
    <value>variable value1</value>
  </par>
  <par>
    <name>variable_name2</name>
    <value>variable value2</value>
  </par>
  ....
</params>

Здесь:
paramsПеречисление определений переменных подстановки
parОпределение переменной подстановки
nameИмя определяемой переменной подстановки
value Значение переменной подстановки

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

Кроме того, переменные подстановки могут задаваться при помощи описателя:
<safe_params>
  <par>
    <name>variable_name1</name>
    <value>variable value1</value>
  </par>
  <par>
    <name>variable_name2</name>
    <value>variable value2</value>
  </par>
  ....
</safe_params>

Это описание отличается от предыдущего только тем, что значение переменной задаётся только при условии, если оно не было задано ранее (на более высоком уровне агрегатного теста, то есть в тесте, который включает данный как составной)

Описание теста обычно может включать как элемент params, так и safe_params одновременно.

Шаблоны тестов - это именованные описания тестов, для выполнения которых нужно явно писать вызов call_template . При этом все переменные подстановки, используемые при описании теста, берутся в соответствии с тем местом, где используется шаблон.

Задаются обычно при помощи описателя в агрегатном тесте:
<test_templates>
  <template>
    <name>template_name1</name>
    <test>
      template description 1
    </test>
  </template>
  <template>
    <name>template_name2</name>
    <test>
      template description 2
    </test>
  </template>
  ....
</test_templates>

Здесь:
test_templatesПеречисление определений именованных шаблонов тестов
test_templateОпределение именованного шаблона теста
nameИмя определяемого именованного шаблона
test Описание шаблона

Может включать в свои поля переменные подстановки. В таком случае эти переменные вычисляются по месту использования шаблона ( call_template ).

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

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

Задаются обычно при помощи описателя в агрегатном тесте:
<on_start_terminal>
  .... test commands ....
</on_start_terminal>
<on_stop_terminal>
  .... test commands ....
</on_stop_terminal>

Здесь:
on_start_terminal Действия, которые должны быть выполнены перед каждым терминальным тестом, входящим в данный агрегатный тест.
on_stop_terminal Действия, которые должны быть выполнены после каждого терминального теста, входящего в данный агрегатный тест.

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

Подключение определений, описанных в другом файле - применяется обычно если именованных сущностей при агрегатном тесте слишком много, либо эти сущности хочется использовать в разных файлах.

Описывается в специальном разделе:
<include>
  <declarations_from>name of file with declarations</declarations_from>
  ....
</include>

Здесь:
include Раздел с перечислением подключаемых файлов с определениями
declarations_from Имя файла, в котором описаны определения.

Путь к файлу должен быть относительным от директории, в которой лежит первоначальный файл.

Сам файл с определениями имеет простой формат:
<declarations>
  <test_templates> .. named test templates      .. </test_templates>
  <params>         .. named params              .. </params>
  <safe_params>    .. named params if undefined .. </safe_params>
  <include>        .. files with declarations ..   </include>
</declarations>

Здесь:
test_templates Перечисление определений именованных шаблонов тестов для использования в составляющих тестах
params, safe_params Перечисление определений переменных подстановок для составляющих тестов.
include Перечисление подключаемых файлов с определениями .

Пример описателя
пакета тестов :
<package>
  <spec>
    <sname>test short name for package</sname>
    <fname>test full name for package</fname>
    <descr>test descr for package</descr>
  </spec>
  <test_templates>
    <template>
      <name>b</name>
      <test>
        <empty_test>
          <spec>
            <sname>test short name for empty</sname>
            <fname>test full name for empty</fname>
            <descr>test descr for empty</descr>
          </spec>
        </empty_test>
      </test>
    </template>
  </test_templates>
  <on_start_terminal>
    <echo>######## on start</echo>
  </on_start_terminal>
  <on_stop_terminal>
    <echo>######## on stop</echo>
  </on_stop_terminal>
  <params>
    <par>
      <name>test_name1</name>
      <value>test_value1</value>
    </par>
    <par>
      <name>test_name2</name>
      <value>test_value2</value>
    </par>
  </params>
  <safe_params>
    <par>
      <name>test_name3</name>
      <value>test_value3</value>
    </par>
    <par>
      <name>test_name4</name>
      <value>test_value4</value>
    </par>
  </safe_params>
  <include>
    <declarations_from>test_declarations1.iti.xml</declarations_from>
    <declarations_from>test_declarations2.iti.xml</declarations_from>
  </include>
</package>

prevtopnext

SourceForge.net Logo