Jython测试覆盖率

2024-05-19 21:14:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在项目中使用Jython而不是Python(希望jdbc驱动程序用于一种稀有的数据库)。 到目前为止一切正常,但我找不到任何好的代码覆盖工具。有人能解决这个问题吗?在

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

其他人如何解决这个问题?我想将jpype之类的东西与普通的python结合起来是一种前进的方式,但是我不希望在我的环境中引入jpype,只是为了测量覆盖率。在


Tags: 工具项目代码com数据库httpgoogle驱动程序
2条回答

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

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

你的问题从根本上说,“我如何为没有内置工具支持的语言获取工具?”语言编程的超现代解决方案是尝试将所有必要的支持构建到特定的langauge实现中(反射、分析、元编程等等)。虽然这是一个好主意,但它所需的工程量是巨大的,而且。。。。它经常不会发生(看看你和Jython的问题)。在

解决这个问题的另一种方法是跳出语言(或它的实现)之外,从设计用于跨多种语言实现工具的引擎获得meta工具构建支持。这也需要工程设计,但可以用非常一般的方式来完成,这样元工具就可以广泛使用了。这样的元工具可以用来实现你没有的工具。在

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

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

相关问题 更多 >