我试图清理django中一些混乱的遗留代码。Vulture看起来是个不错的选择,但它似乎不知道如何查找从中引用的视图函数网址.py. 这并不奇怪,因为大多数函数都是作为字符串包含的:
...
url(r'^some-url/$', 'my_app.views.some_url_view'),
...
有没有一个简单的方法让秃鹫知道视图的功能?在
我要做的一件事是:我为代码编写了相当广泛的测试。目前,秃鹫错过了这些测试,但如果有什么方法可以让秃鹫意识到这些测试,我想所有的观点也会包括在内。在
Tags:
单独使用Ned的Batchelder ^{} 或将其与^{} 一起使用。在
只需运行这些测试用例,
coverage html
就会得到一个漂亮的报告,一行一行地显示代码,并提供详细的覆盖率信息。删减/删除未使用/未测试的代码。在是的,有-秃鹫称这个过程为“白名单”。基本思想是显式地“使用”代码Vulture报告为未使用的代码。这可以通过为未使用的代码创建一个模拟对象来实现。由于创建这样的模拟对象是相当普遍的做法,Vulture最近开始为这个非常特殊的目的发布一个抽象类
vulture.whitelist_utils.Whitelist
。在对于您给出的示例视图函数,白名单可能如下所示:
请注意,您还必须将此文件作为参数传递给Vulture才能正常工作。在上面的示例中,假设您正在
^{pr2}$apps
和tests
目录上运行Vulture,如果白名单保存为whitelists/whitelist_view.py
,那么Vulture的命令应该是:这是怎么回事?
由于您还传递了白名单文件和要分析的文件,vulture为它们都创建了
ast
,在解析这些抽象语法树时,vulture创建了一个公共集,用于存储已使用和定义的对象的名称。由于假阳性函数的名称同时出现在这两个函数中,因此不将其视为未使用的函数。在有关如何减少误报的更多方法,请通过Vulture's Documentation。还有这个blog post by Rahul on Vulture and false positives.
相关问题 更多 >
编程相关推荐