Пытаюсь протестировать несколько тестовых файлов с несколькими тестовыми классами, но PyTest не распознает другие файлы

Я перерыл весь интернет в поисках решения этой проблемы. Я пытался убедиться, что PyTest распознает несколько тестовых файлов, чтобы учесть несколько тестовых файлов и классы внутри них для создания полного набора тестов.

Вот файл конфигурации:

[pytest]
asyncio_mode=auto
asyncio_default_fixture_loop_scope="class"
DJANGO_SETTINGS_MODULE = personal_blog.settings
testpaths = tests

Вот тестовый класс, который он распознает:

test_members.py

import pytest
import factory
from django.contrib.auth import get_user_model
from factories import MemberFactory
from faker import Faker
from django.urls import reverse
from django.contrib.auth.models import Permission

fake = Faker()

# Create your tests here.
User = get_user_model()

# Basic Tests
class TestMembers:
#Confirms that a user has been created
    @pytest.mark.django_db
    def test_if_user_exists(db):
        user = MemberFactory()
        assert user.username is not None
        assert user.email is not None
    
    # Checks if the password fails
    @pytest.mark.django_db
    def test_set_check_password_fail(db):
    #    basic_user.set_password("password")
        user = MemberFactory()
        assert user.password != 'Wrong' 
    
    # Checks if the password fails
    @pytest.mark.django_db
    def test_set_check_password_success(db):
        user = MemberFactory()
        assert user.password == 'password'
    
    # Checks if the user is not a contributor by default.
    @pytest.mark.django_db
    def test_is_not_contributor_by_default(db):
        user = MemberFactory()
        assert user.is_contributor is False
    
    # Checks if the User is a contributor
    @pytest.mark.django_db
    def test_is_contributor(db):
        user = MemberFactory(is_contributor = True, is_superuser = False)
        assert user.is_contributor is True
    
    # Checks if the user is not a superuser
    @pytest.mark.django_db
    def test_is_not_superuser(db):
        user = MemberFactory()
        assert user.is_superuser is False
    
    # Checks if the user is a superuser
    @pytest.mark.django_db
    def test_is_superuser(db):
        user = MemberFactory(is_superuser = True, is_contributor = True)
        assert user.is_superuser is True
    
class TestPosts:
#Disallows user to create a post if they're not a contributor
    @pytest.mark.django_db
    def is_not_contributor(db):
        nonauthorizedUser = MemberFactory()
        can_post = nonauthorizedUser.has_perms("post.add_post")
        assert can_post is False

Вот файл, который Pytest не распознает:

import pytest
import factory
from django.contrib.auth import get_user_model
from posts.models import Post
from factories import MemberFactory, PostFactory
from faker import Faker
from django.contrib.auth.models import Permission

# Create your tests here.
User = get_user_model()
fake = Faker()






# Post Tests
class TestPosts:
#Disallows user to create a post if they're not a contributor
    @pytest.mark.django_db
    def is_not_contributor(db):
        nonauthorizedUser = MemberFactory()
        can_post = nonauthorizedUser.has_perms("post.add_post")
        assert can_post is False

Есть ли что-то, чего мне не хватает? Что именно я упускаю в обеих страницах. Я просмотрел соответствующие части документации и не нашел удовлетворительного ответа. Пожалуйста, помогите мне, если это возможно. Спасибо.

Pytest распознает тестовые методы/функции, начинающиеся с префикса test_

Так что добавление test_ перед именем вашей функции должно исправить проблему.

class TestPosts:
#Disallows user to create a post if they're not a contributor
    @pytest.mark.django_db
    def test_is_not_contributor(db):
        nonauthorizedUser = MemberFactory()
        can_post = nonauthorizedUser.has_perms("post.add_post")
        assert can_post is False
Вернуться на верх