utPLSQL - добавить отдельные результаты теста в таблицу - PullRequest
0 голосов
/ 11 октября 2018

Как добавить индивидуальный результат теста в таблицу.Я хочу это в этом формате:

test_desc       | status
--------------------------------
this is test 1  | Pass
--------------------------------
this is test 2  | Fail

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

Вы можете вызвать ut.run() как табличную функцию и вернуть ее результаты из запроса.Но эти результаты будут таблицы Varchars.Чтобы извлечь из этого полезную информацию, вы можете немного разобрать эти результаты.

Приведенный ниже запрос работает со стандартным репортером, но, по общему признанию, он немного грубоват и даст неверные результаты, если описания вашего теста содержат определенные строки 'trigger' (например, '[' или 'FAILED').Вы можете использовать другой репортер или написать свой собственный, чтобы выводить результаты в формате, который легче анализировать.

select
  substr(result, 1, instr(result, '[') - 1) as description,
  case 
    when result like '%(FAILED%' then
      'FAILED'
    when result like '%(DISABLED%' then
      'DISABLED'
    when result like '%(ERROR%' then
      'ERROR'
  else
    'OK'
  end as status
from
  ( -- Actual test run
    select 
      trim(column_value) as result 
    from 
      table(ut.run())
  )
where
  result like '%[%' /* filter out irrelevant lines */;

После того, как вы получили такие результаты, их, конечно, тривиально вставить в таблицу, используя оператор insert..select.

0 голосов
/ 11 октября 2018

Версия 2.3.1 включает руководство по созданию пользовательских пакетов репортера .Для версии 3 я не могу найти это в документации, но она все еще использует репортеров для различных систем CI.Поскольку utPLSQL лицензируется под лицензией Apache 2.0, вы можете расширить его для своих нужд и создать свой собственный репортер.Обратите внимание на существующие репортеры , в частности ut_documentation_reporter в качестве отправной точки.

...