我有一个Django项目正在进入其发展的第四个年头。在这四年中,许多URL(以及查看功能)已经过时。我没有删除它们,而是将它们留在"以防万一"态度。现在,我正在寻找清除未使用的URL和未使用的视图功能。
有没有简单的方法可以做到这一点,还是只是通过所有代码咕噜咕噜来解决它?在几周/几个月之后,我对于删除某些内容并且没有意识到这一点非常重要。
答案 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回答了它。