代码之家  ›  专栏  ›  技术社区  ›  Matthew Watson

pl/sql的代码覆盖率

  •  11
  • Matthew Watson  · 技术社区  · 16 年前

    有没有人拥有pl/sql代码覆盖方面的工具或经验。我相信使用dbms_profiler可以做到这一点?

    5 回复  |  直到 13 年前
        1
  •  6
  •   David Mann    15 年前

    http://www.toadworld.com/BLOGS/tabid/67/EntryID/267/Default.aspx 有关于使用pl/sql分析器检查代码覆盖率的信息。

    metalink文章243755.1“实现和使用pl/sql profiler”中包含了一些有关9i或10g上的评测的有用信息,以获取有关评测代码的信息。从本文的底部获取prof.zip,它有一个profiler.sql,在分析运行之后,它可以很好地格式化结果。

    此处提供了更多10g文档,无需metalinka帐户: http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_profil.htm

    如果您运行的是11g,则此处记录了一个新的分层探查器: http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28424/adfns_profiler.htm

        2
  •  3
  •   Ira Baxter    13 年前

    SD Test Coverage Tools . 我们将发布一个plsql测试覆盖率工具,其功能与其他工具相同,包括一个在源代码顶部显示结果的gui,以及一个生成的覆盖率报告,该报告收集有关各个函数的详细信息以及包的汇总。

    编辑2011年2月15日:plsql测试覆盖率生产工具可用。

        3
  •  1
  •   cagcowboy    16 年前

    不确定这是否正是您所追求的,但在10g以后,有一个工具可以进行静态pl/sql代码分析。

    信息在这里… http://www.psoug.org/reference/plsql_warnings.html

    请注意,它可以在会话或数据库级别启用。

    以我的经验,到目前为止,它已经抛出了不少错误的否定。

        4
  •  1
  •   Dilshod Tadjibaev    16 年前

    我发现一些有用的东西 http://www.databasejournal.com/features/oracle/article.php/10893_2197231_3 页。

    select exec.cnt/total.cnt * 100 "Code% coverage"
    from  (select count(1) cnt
          from plsql_profiler_data d, plsql_profiler_units u
          where d.runid = &&runid
          and u.runid = d.runid
          and u.unit_number = d.unit_number
          and u.unit_name = upper('&&name')
          and u.unit_owner = upper('&&owner')
          ) total,
         (select count(1) cnt
          from plsql_profiler_data d, plsql_profiler_units u
          where d.runid = &&runid
          and u.runid = d.runid
          and u.unit_number = d.unit_number
          and u.unit_name = upper('&&name')
          and u.unit_owner = upper('&&owner')
          and d.total_occur > 0) exec;
    
        5
  •  1
  •   WW.    15 年前

    有一个你可以安装的软件包 DBMS_profiler 。这样,您可以启动配置文件,Oracle将在特殊表中存储数据。然后停止概要文件并从这些表中报告。