Я занимаюсь разработкой приложения Django, оно успешно работает прямо сейчас.Я хочу отследить, сколько строк кода выполняется при отправке HTTP-запроса.
Я просмотрел cover.py, но его нужно включить в представление, из-за этого я не могучтобы получить покрытие кода всего сценария, то есть от import
операторов до return
Response.
Ниже приведен код, который я реализовал.
Это файл моделей
from django.db import models
class Puppy(models.Model):
"""
Puppy Model
Defines the attributes of a puppy
"""
name = models.CharField(max_length=255)
age = models.IntegerField()
breed = models.CharField(max_length=255)
color = models.CharField(max_length=255)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def get_breed(self):
return self.name + ' belongs to ' + self.breed + ' breed.'
def __repr__(self):
return self.name + ' is added.'
class PuppyStore(models.Model):
"""
Puppy store, this supply all puppy needs
"""
puppy = models.ForeignKey(Puppy,on_delete=models.CASCADE)
food = models.CharField(max_length=25)
Файл просмотра
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework import status
from .models import Puppy
from .serializers import PuppySerializer
from coverage import Coverage
@api_view(['GET'])
def list_puppies(request):
try:
cov = Coverage()
cov.erase()
cov.start()
qset = Puppy.objects.all()
resp = PuppySerializer(qset, many=True)
cov.stop()
cov.save()
cov.html_report()
return Response(resp.data, status=status.HTTP_200_OK)
except Exception as e:
return Response({'error': str(e)})
файл сериализатора
from rest_framework import serializers
from .models import Puppy
class PuppySerializer(serializers.ModelSerializer):
class Meta:
model = Puppy
fields = ('name', 'age', 'breed', 'color', 'created_at', 'updated_at')
Ниже изображениеокончательный отчет о покрытии HTML после нажатия http://127.0.0.1:8010/api/v1/all_puppies в моем браузере
Там я могу проверить код в границах, но я хочу проверить покрытие кода от import
операторов до оператора return response
.
Есть ли какая-либо утилита / промежуточное программное обеспечение, которое служит для этой цели, пожалуйстапредложить, если таковые имеются.