utPLSQL-将单个测试结果添加到表中

时间:2018-10-11 12:17:22

标签: oracle unit-testing plsql utplsql

如何将单个测试结果添加到表中。我想要这种格式:

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

2 个答案:

答案 0 :(得分:2)

版本2.3.1包含有关如何创建custom reporter packages的指南。对于版本3,我在文档中找不到该版本,但是它仍将报告程序用于不同的CI系统。由于utPLSQL是根据Apache 2.0许可获得许可的,因此您可以根据需要扩展它并创建自己的报告器。检出现有的reporters,特别是ut_documentation_reporter作为起点。

答案 1 :(得分:0)

您可以调用ut.run()作为表函数,并从查询中返回其结果。但是这些结果将是一个varchars表。要从中提取有用的信息,您可以对这些结果进行一些解析。

下面的查询适用于标准报告程序,但是如果您的测试描述包含某些“触发”字符串(如“ [”或“ 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语句将它们插入表中当然是微不足道的。