有没有办法使用秃鹫Django的一个简单的方法?(Is there a simple way to

2019-07-31 03:28发布

我试图清理在Django有些纠结遗留代码。 秃鹰看起来像一个不错的选择,但它似乎不知道如何找到urls.py.引用视图功能 这是不是太令人惊讶,因为大部分的功能包括为字符串:

...
url(r'^some-url/$', 'my_app.views.some_url_view'),
...

有一个简单的方法,使秃鹫认识的观点功能是什么?

有一件事我得去给我:我已经写了相当广泛的测试的代码。 目前,秃鹫错过这些测试,但如果有一些办法让秃鹫意识到这些测试,我认为所有的意见将被包括在内。

Answer 1:

尝试Ned的尔德coverage单独或与使用它nose

只需通过测试用例运行, coverage html将让你一个美丽的报告显示一行代码行,有详细的报道资料。 修剪下来/事后删除未使用/未测试的代码。



Answer 2:

有一个简单的方法,使秃鹫认识的观点功能是什么?

是的,有 - 秃鹰称此过程为“白名单”。 其基本思想是明确地“使用”代码秃鹰报告为未使用。 这可以通过创建未使用的代码模拟对象来完成。 由于这是一个相当普遍的做法是创建这样的模仿对象,秃鹫最近开始出货抽象类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

请注意,您还必须将此文件作为参数传递给秃鹫为它工作。 在上面的例子中,假设你是在运行秃鹫appstests目录,如果白名单被保存为whitelists/whitelist_view.py ,然后秃鹫的命令应该是:

vulture apps/ tests/ whitelists/

这是如何运作的?

既然你也通过文件一起的白名单文件进行分析,秃鹫创建ast的为他们与在解析这些抽象语法树,秃鹰建立一套共同的存储和使用定义的对象的名称。 由于假阳性函数的名称在两人面前出现,因此不被视为闲置。

有关如何误报减少更多的方式,请经过雕的文档 。 还有这个博客帖子由拉胡尔在秃鹫和误报。



文章来源: Is there a simple way to use vulture with django?