为什么测试无法检测到test.py的语法错误?并帮助我修复错误

Bas*_*nda 1 python testing django

我写了一个如下的测试代码,其中有一些错误,我无法检测到,但是老师说你错过self了代码中的某个地方。那就像是我找不到那个提示。这是我的代码:

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

    def home_test_view_status_code(self):
        self.assertEqual(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': board.pk})
        self.assertContains(response, 'href={0}'.format(board_topics_url))
Run Code Online (Sandbox Code Playgroud)

即使我运行python manage.py test此代码也不会引发任何错误:

System check identified no issues (0 silenced).

----------------------------------------------------------------------
Ran 0 tests in 0.000s
Run Code Online (Sandbox Code Playgroud)

请帮助我,我在这里做错了。self关键字应该在哪里?为什么?

然后,我去图书馆检查并发现了错误,然后错误地在其中添加了“ p” view = resolvep('/'),却不知道自己在运行python manage.py test它,结果如下:

C:\Users\Administrator\Desktop\Practice\board\src>python manage.py test
Creating test database for alias 'default'...
System check identified no issues (0 silenced).

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK
Destroying test database for alias 'default'...
Run Code Online (Sandbox Code Playgroud)

在检查我的代码时,我发现我拼写错误resolve,在这里我遇到了一个问题,为什么它在测试后没有抛出语法错误,因为resolve()是拼写错误?然后,我故意在其中添加了一个额外的“ e” self.clieent.get(url),再次没有错误?请帮助我理解这一点非常感谢

编辑:我的测试文件名为tests.py,它在开发板目录应用中!还有init .py文件。 在此处输入图片说明

然后,我将其重命名为test_board.py并运行测试。它说ran 0 tests?怎么了?

Mar*_*elo 5

您没有错误,因为您没有进行任何测试。测试文件名必须以testlike 开头,test_something.py并且该文件夹需要有一个__init__.py文件。

有关django如何发现要在此处运行的测试的更多信息:https : //docs.djangoproject.com/en/2.2/topics/testing/overview/#running-tests

  • “在0.000秒内进行了0次测试”意味着没有运行测试,这就是为什么您看不到由于语法/键入错误而导致的任何失败的原因 (2认同)