【问题标题】:Jython test coverageJython 测试覆盖率
【发布时间】:2010-10-10 21:48:17
【问题描述】:

我正在尝试将 Jython 而不是 Python 用于项目(想要 jdbc 驱动程序用于一种罕见的数据库)。 到目前为止一切正常,但我找不到任何好的代码覆盖工具。有没有人可以解决这个问题?

我所做的谷歌搜索似乎表明 jython 缺少一些代码覆盖工具需要的东西。 http://nedbatchelder.com/blog/201005/coveragepy_on_jython.html

其他人如何解决这个问题?我想像 jpype 这样的东西加上普通的 python 会是一个前进的方向,但我宁愿不在我的环境中引入 jpype 只是为了覆盖测量。

【问题讨论】:

    标签: python code-coverage jython


    【解决方案1】:

    您链接的博客文章提到您可以在 Jython 下运行“coverage run”,然后在 CPython 下运行“coverage html”。你试过这个吗?它应该给出合理的结果。

    【讨论】:

    • 我确实试了一下,尽管我不希望在我的项目中引入不必要的依赖项。不幸的是,我在安装时遇到了问题并卡住了。那是我开始寻求替代方案的时候。 :)
    • 如果您需要帮助,请给我留言。 coverage.py 和 CPython 只是两个依赖项,任何其他工具都至少是一个! :)
    • 我接受这个答案,只是因为它让我解决了我的环境问题并确保实际安装了coverage.py,以便我可以对其进行测试。 :)
    【解决方案2】:

    其他人如何解决这个问题?

    您的问题从根本上说是:“我如何才能获得适用于没有内置工具支持的语言的工具?”编程语言的超现代解决方案是尝试将所有必要的支持构建到特定的语言实现中(反射、分析、元编程……)。虽然这是一个不错的想法,但完成它所需的工程量是巨大的,而且……它通常不会发生(看看你对 Jython 的问题)。

    解决问题的另一种方法是跳出语言(或其实现)并从旨在跨多种语言实现工具的引擎获得元工具构建支持。这也需要工程,但它可以以非常通用的方式完成,以便元工具可以广泛使用。然后可以使用此类元工具来实现您没有的工具。

    我们的DMS Software Reengineering Toolkit 就是这样一个元工具,提供程序解析、分析和转换,并通过明确的语言定义进行参数化。 DMS 支持多种语言(C、C++、C#、COBOL、Java、PHP 等),包括 Python,并且它支持 方言,使其能够处理“标准”语言的变体(我怀疑 Jython 并不完全是 Python)。

    在此链接中,您可以找到关于 how a meta-tool like DMS can be used to implement test coverage for arbitrary langauges 的技术论文。这个想法已被用于实现我公司提供的一系列测试覆盖工具。 (我们可能会在未来的某个时候为 Python 这样做)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多