如何将单个测试结果添加到表中。我想要这种格式:
test_desc | status
--------------------------------
this is test 1 | Pass
--------------------------------
this is test 2 | Fail
答案 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语句将它们插入表中当然是微不足道的。