Юнит-тест Django не выполняется

Я все еще борюсь с тестами в Django. Сейчас я переписал тест, но он не выполняется, и я не вижу результатов, когда запускаю команду test. Это из-за неправильного теста или я что-то упускаю? Еще раз спасибо :)

Модели:

class Lab(models.Model):
    lab_name = models.CharField(max_length=200)
    category = models.ForeignKey(Category, unique=True, null=True, on_delete=models.PROTECT)
    pub_date = models.DateTimeField('date published')
    lab_theory = models.TextField()
    def __str__(self):
        return self.lab_name

class QuestionMultipleChoice(models.Model):
    lab = models.ForeignKey(Lab, on_delete=models.CASCADE)
    type = QuestionType.multiplechoice
    question = models.CharField(max_length=200,null=True)
    option1 = models.CharField(max_length=200,null=True)
    option2 = models.CharField(max_length=200,null=True)
    option3 = models.CharField(max_length=200,null=True)
    option4 = models.CharField(max_length=200,null=True)
    answer = models.IntegerField(max_length=200,null=True)
    
    def __str__(self):
        return self.question

    @property
    def html_name(self):
        return "q_mc_{}".format(self.pk)

    @property
    def correct_answer(self):
        correct_answer_number = int(self.answer)
        correct_answer = getattr(self, "option{}".format(correct_answer_number))
        return correct_answer

    def check_answer(self, given):
        return self.correct_answer == given


Тест:

    def test_past_question(self):
        """
        Questions with a pub_date in the past are displayed on the
        index page.
        """
        past_date = date(1997, 3, 2)
        lab2 = Lab.objects.create(lab_name="test lab past question", pub_date=past_date, lab_theory="test lab past question")
        past_question = QuestionMultipleChoice.objects.create(lab=lab2, question='This is a test question', option1='1', option2='2', option3='3', option4='4', answer='1')
        response = self.client.get(reverse('labs:index'))
        print (response)
        self.assertEqual(str(past_question),'This is a test question')

Для того, чтобы тест был обнаружен DiscoverRunner Django, он должен соответствовать следующим критериям:

  • Метод должен начинаться с test_
  • Метод должен быть в классе, который наследуется от django.test.TestCase
  • .
  • TestCase должен находиться в файле, который следует шаблону test*.py glob.
  • .
  • Если у вас есть myapp.tests в качестве модуля, все файлы под ним должны по-прежнему удовлетворять test*.py glob-шаблону и должен быть __init__.py из этого tests модуля.

Это должно быть верно, если вы не замените TEST_RUNNER на Pytest или что-то еще. Я могу что-то упустить, поэтому дайте мне знать, если это так, и я смогу отредактировать комментарий с более подробной информацией относительно вашей конкретной ситуации.

Некоторая документация и DiscoverRunner источник.

Вернуться на верх