在utPLSQL中将单个测试用例添加到套件中

时间:2016-12-28 12:59:47

标签: oracle plsql

我有一个包含6个测试用例的测试包。我想建立2套房: 第一个包含test1,test2 第二个包含test3,test4,test 5

根据文档,我们只能将整个测试包添加到套件中,但不能添加单个测试用例。此外,我不想根据套件要求分离软件包,因为它们适用于同一组,但功能不同。

对此的任何建议将不胜感激。如果我目前的理解是错误的,请随时告诉我。提前致谢。添加一些示例代码:

CREATE PACKAGE ut_test_pkg 
IS BEGIN 
PROCEDURE ut_test1;
   PROCEDURE ut_test2;
   PROCEDURE ut_test3;
   PROCEDURE ut_test4;
   PROCEDURE ut_test5; 
END;
 / 

现在test1和test2逻辑上是1个测试用例,test3-5是另一个。我可以这样做:

begin 
utplsql.test ('test_pkg', recompile_in => FALSE, subprogram_in => 'test1');         utplsql.test ('test_pkg', recompile_in => FALSE, subprogram_in => 'test2'); 
end; 
/

但是将它添加到套件中会增加简单性。它可以简单地运行该套件,用于测试test1,test2和test3-5。

单独运行时,我会得到类似::
的输出 成功
测试1< 50多行>
故障
测试2< 50多个线>

我接近100次检查,因此测试结果之间的差距非常大,用户必须滚动很多。我希望添加一个标题,在顶部显示最终结果,就像他们在测试套件中所做的那样,输出就像

SUITE FAILURE
成功
测试1< 50多行>
故障
测试2< 50多个线>

1 个答案:

答案 0 :(得分:0)

看起来我为我的查询找到了一个可行且非常简单的解决方案。我只需要在测试运行期间正确指定子程序部分。 所以,首先我需要参加的所有测试用例都必须包含一个常用的字符串,我可以使用它来搜索::

CREATE PACKAGE ut_test_pkg 
IS BEGIN 
   PROCEDURE ut_abc_test1;
   PROCEDURE ut_abc_test2;
   PROCEDURE ut_def_test3;
   PROCEDURE ut_def_test4;
   PROCEDURE ut_def_test5; 
END;
 / 

执行时我会像::

一样
begin
  utplsql.test ('test_pkg', recompile_in => FALSE, subprogram_in => '%abc%');
end
/
begin
  utplsql.test ('test_pkg', recompile_in => FALSE, subprogram_in => '%def%');
end;
/

这将在第一种情况下运行包含abc的测试用例,并且在dbms_output的顶部显示合并结果[Success / Failue]。因此,用户无需滚动查看每个测试的测试用例。同样,对于第二轮中的def。

感谢大家的帮助。

相关问题