Python 我必须在Django中将test.*.py文件放在哪里?

Python 我必须在Django中将test.*.py文件放在哪里?,python,django,Python,Django,我刚刚将tests.py文件移动到一个名为tests的新目录中,然后我在其中添加了\uuuu init\uuuuu.py文件,但当我运行testpython manage.py test时,它说在0.000秒内运行了0个测试。如何解决? 我不知道如何像大多数人一样显示我的文件,但这里有一张图片 此应用程序也添加到settings.py中 谢谢 编辑: 这是test_models.py的一个示例 from django.test import TestCase # Create your te

我刚刚将
tests.py
文件移动到一个名为tests的新目录中,然后我在其中添加了
\uuuu init\uuuuu.py
文件,但当我运行test
python manage.py test
时,它说
在0.000秒内运行了0个测试。如何解决?
我不知道如何像大多数人一样显示我的文件,但这里有一张图片

此应用程序也添加到settings.py中 谢谢

编辑: 这是test_models.py的一个示例

from django.test import TestCase

# Create your tests here.
from django.test import TestCase
from django.urls import reverse
from board.models import Board
from board.views import board_topics


class HomeTest(TestCase):
    def home_test_case(self):
        url = reverse('home')
        response = self.client.get(url)
        self.assertEqual(response.status_code, 200)


class BoardTest(TestCase):
    def setup(self):
        Board.objects.create(title='Hello world',
                             description='My first Django app!')

    def board_topics_status_code(self):
        url = reverse('board_topics', kwargs={id: 1})
        response = self.client.get(url)
        return self.assertEqual(response.status_code, 200)

    def board_topics_status_code_not_found(self):
        url = reverse('board_topics', kwargs={id: 123})
        response = self.client.get(url)
        return assertEqual(response.status_code, 200)

    def resolve_url_to_specific_fun(self):
        url = resolve('board/1/')
        return assertEqual(view.func, board_topics)


def HomeTests(TestCase):
    def setUp(self):
        self.board = Board.objects.create(
            title='Django', description='Django Desc')
        url = reverse('home')
        self.response = self.client.get(url)

    def home_test_view_status_code(self):
        self.assertEqual(self.response.status_code, 200)

    def home_test_func(self):
        view = resolve('/')
        self.assertEqual(view.func, home)

    def test_home_contains_link_to_topics_page(self):
        board_topics_url = reverse(
            'board_topics', kwargs={'id': self.board.pk})
        self.assertContains(self.response, 'href={0}'.format(board_topics_url))

您的所有测试都必须附加
测试
前缀。重命名所有测试并将其添加到名称中

例如:

def test_board_topics_status_code(self):
    url = reverse('board_topics', kwargs={id: 1})
    response = self.client.get(url)
    return self.assertEqual(response.status_code, 200)
另外,您需要将
def HomeTests(TestCase):
更改为
class HomeTests(TestCase):
,这就是上一个测试命名正确但仍未被发现的原因

有两种方法可以将测试保存在项目中。我更喜欢这个 第一个。

1。您的开发代码包含所有测试。这样,在编写开发代码时,添加新测试就更容易了,而且测试现在随开发代码一起提供

Project
├── __init__.py
├── api
│   ├── v1
│   │   ├── tests
│   │   │   ├── __init__.py
│   │   │   ├── test_serializers.py
│   │   │   └── test_views.py
│   │   ├── __init__.py
│   │   ├── serializers.py
│   │   ├── urls.py
│   │   └── views.py
│   ├── v2
│   │   ├── tests
│   │   │   ├── __init__.py
│   │   │   ├── test_serializers.py
│   │   │   └── test_views.py
│   │   ├── __init__.py
│   │   ├── serializers.py
│   │   ├── urls.py
│   │   └── views.py
│   ├── __init__.py
│   ├── serializers.py
│   └── urls.py
├── models
│   ├── tests
│   │   ├── __init__.py
│   │   ├── test_data_structures.py
│   │   ├── test_miscellaneous_models.py
│   │   ├── test_models.py
│   ├── __init__.py
│   ├── models.py
│   ├── data_structures.py
│   └── miscellaneous_models.py
├── resume_handler
│   ├── tests
│   │   ├── __init__.py
│   │   ├── test_handlers.py
│   │   ├── test_managers.py
│   │   ├── test_parsers.py
│   │   ├── test_uploaders.py
│   │   └── test_validators.py
│   ├── __init__.py
│   ├── handlers.py
│   ├── managers.py
│   ├── parsers.py
│   ├── uploaders.py
│   └── validators.py
├── tasks
│   ├── tests
│   │   ├── __init__.py
│   │   └── test_tasks.py
│   ├── __init__.py
│   ├── general.py
│   └── model_tasks.py
├── tests
│   └── test_utils.py
└── utils.py
Project
├── api
│   ├── v1
│   │   └── more code files ...
│   ├── v2
│   │   └── more code files ...
│   └── v3
│       └── more code files ...
├── choices
├── constants
├── models
│   ├── data_filters
│   ├── querysets
│   └── more code files ...
├── resume_builder
│   └── more code files ...
├── resume_handler
│   └── more code files ...
├── tasks
│   └── more code files ...
└── more code files ...
2。另一种方法是将测试文件夹与项目文件夹分开。此测试文件夹与项目文件夹保持相同的层次结构。这使测试代码与开发代码分开

Project
├── __init__.py
├── api
│   ├── v1
│   │   ├── tests
│   │   │   ├── __init__.py
│   │   │   ├── test_serializers.py
│   │   │   └── test_views.py
│   │   ├── __init__.py
│   │   ├── serializers.py
│   │   ├── urls.py
│   │   └── views.py
│   ├── v2
│   │   ├── tests
│   │   │   ├── __init__.py
│   │   │   ├── test_serializers.py
│   │   │   └── test_views.py
│   │   ├── __init__.py
│   │   ├── serializers.py
│   │   ├── urls.py
│   │   └── views.py
│   ├── __init__.py
│   ├── serializers.py
│   └── urls.py
├── models
│   ├── tests
│   │   ├── __init__.py
│   │   ├── test_data_structures.py
│   │   ├── test_miscellaneous_models.py
│   │   ├── test_models.py
│   ├── __init__.py
│   ├── models.py
│   ├── data_structures.py
│   └── miscellaneous_models.py
├── resume_handler
│   ├── tests
│   │   ├── __init__.py
│   │   ├── test_handlers.py
│   │   ├── test_managers.py
│   │   ├── test_parsers.py
│   │   ├── test_uploaders.py
│   │   └── test_validators.py
│   ├── __init__.py
│   ├── handlers.py
│   ├── managers.py
│   ├── parsers.py
│   ├── uploaders.py
│   └── validators.py
├── tasks
│   ├── tests
│   │   ├── __init__.py
│   │   └── test_tasks.py
│   ├── __init__.py
│   ├── general.py
│   └── model_tasks.py
├── tests
│   └── test_utils.py
└── utils.py
Project
├── api
│   ├── v1
│   │   └── more code files ...
│   ├── v2
│   │   └── more code files ...
│   └── v3
│       └── more code files ...
├── choices
├── constants
├── models
│   ├── data_filters
│   ├── querysets
│   └── more code files ...
├── resume_builder
│   └── more code files ...
├── resume_handler
│   └── more code files ...
├── tasks
│   └── more code files ...
└── more code files ...
现在,在项目文件夹所在的同一目录中创建一个测试文件夹,该文件夹维护相同的层次结构,但只包含相应的测试文件

test
├── api
│   ├── v1
│   │   └── test files ...
│   ├── v2
│   │   └── test files ...
│   └── v3
│       └── test files ...
├── choices
├── constants
├── models
│   ├── data_filters
│   ├── querysets
│   └── test files ...
├── resume_builder
│   └── test files ...
├── resume_handler
│   └── test files ...
├── tasks
│   └── test files ...
└── test files ...

您是否在.py中编写了测试代码?manage.py test将在TestCase类中搜索以“test”开头的函数。只要您的测试模型中有以
test.*
开头的函数,这应该可以工作。py@Willy,是的,我在test_models.py中编写了测试。请在test_models.py中添加一个代码示例。谢谢你,这段时间我一直在想test_uuu只是文件名!上帝保佑你,我很乐意帮助你-