我试图清理在Django有些纠结遗留代码。 秃鹰看起来像一个不错的选择,但它似乎不知道如何找到urls.py.引用视图功能 这是不是太令人惊讶,因为大部分的功能包括为字符串:
...
url(r'^some-url/$', 'my_app.views.some_url_view'),
...
有一个简单的方法,使秃鹫认识的观点功能是什么?
有一件事我得去给我:我已经写了相当广泛的测试的代码。 目前,秃鹫错过这些测试,但如果有一些办法让秃鹫意识到这些测试,我认为所有的意见将被包括在内。
尝试Ned的尔德coverage
单独或与使用它nose
。
只需通过测试用例运行, coverage html
将让你一个美丽的报告显示一行代码行,有详细的报道资料。 修剪下来/事后删除未使用/未测试的代码。
有一个简单的方法,使秃鹫认识的观点功能是什么?
是的,有 - 秃鹰称此过程为“白名单”。 其基本思想是明确地“使用”代码秃鹰报告为未使用。 这可以通过创建未使用的代码模拟对象来完成。 由于这是一个相当普遍的做法是创建这样的模仿对象,秃鹫最近开始出货抽象类vulture.whitelist_utils.Whitelist
这个非常特殊的目的。
因为你给的例子视图功能,白名单可能是这样的:
# whitelists/whitelist_view.py
from vulture.whitelist_utils import Whitelist
view_whitelist = Whitelist()
# Create an attribute named exactly as your
# unused object - a function in this case
view_whitelist.some_url_view
请注意,您还必须将此文件作为参数传递给秃鹫为它工作。 在上面的例子中,假设你是在运行秃鹫apps
和tests
目录,如果白名单被保存为whitelists/whitelist_view.py
,然后秃鹫的命令应该是:
vulture apps/ tests/ whitelists/
这是如何运作的?
既然你也通过文件一起的白名单文件进行分析,秃鹫创建ast
的为他们与在解析这些抽象语法树,秃鹰建立一套共同的存储和使用定义的对象的名称。 由于假阳性函数的名称在两人面前出现,因此不被视为闲置。
有关如何误报减少更多的方式,请经过雕的文档 。 还有这个博客帖子由拉胡尔在秃鹫和误报。