Пытаюсь протестировать несколько тестовых файлов с несколькими тестовыми классами, но 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