有没有简单的方法来判断哪些URL未使用?

时间:2014-03-22 21:24:18

标签: django django-views django-urls

我有一个Django项目正在进入其发展的第四个年头。在这四年中,许多URL(以及查看功能)已经过时。我没有删除它们,而是将它们留在"以防万一"态度。现在,我正在寻找清除未使用的URL和未使用的视图功能。

有没有简单的方法可以做到这一点,还是只是通过所有代码咕噜咕噜来解决它?在几周/几个月之后,我对于删除某些内容并且没有意识到这一点非常重要。

2 个答案:

答案 0 :(得分:1)

我的想法是迭代urlpatterns并检查status_code是否为200:

class BasicTestCase(TestCase):
    def test_url_availability(self):
        for url in urls.urlpatterns:
            self.assertEqual(self.client.get(reverse('%s' % url.name)).status_code,
                             200)

我知道它可能在所有情况下都不起作用,因为可能存在带有"动态"自然与动态网址部分,但它,它应该给你基本的想法。请注意,reverse()也接受参数,以防您需要将参数传递给基础视图。

另见:Finding unused Django code to remove

希望有所帮助。

答案 1 :(得分:0)

您正在寻找覆盖范围,这基本上是“实际使用了多少代码”。

覆盖率分析通常通过测试来完成 - 找出测试覆盖的代码百分比 - 但是没有什么能阻止你做同样的事情来找出孤立的视图。

而不是重复这个过程,@ sk1p已经在How to get coverage data from a django app when running in gunicorn回答了它。