我写了一个测试代码如下,它有一些错误,我无法检测到,但我的老师说你在代码中的某个地方错过了 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))
即使我运行 python manage.py test 这段代码也不会抛出任何错误:
System check identified no issues (0 silenced).
----------------------------------------------------------------------
Ran 0 tests in 0.000s
请帮我看看我做错了什么。 self 关键字应该在哪里?为什么?
然后,我去了图书馆并检查了 bug,我错误地在 view = resolvep('/') 中添加了一个 'p' 并且不知道我运行了 python manage .py 测试 它显示了这个结果:
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'...
在检查我的代码时,我发现我拼错了 resolve,在这里我遇到了这个问题,为什么它在测试后没有抛出语法错误,因为 resolve() 被拼错了? 然后我故意在 self.clieent.get(url) 中添加了一个额外的'e'并且再次没有错误? 请帮助我理解这一点 非常感谢
编辑:我的测试文件名为 tests.py,它在 board 目录 app 中!还有 init.py 文件。
然后我将其重命名为 test_board.py 并运行测试。它说运行了 0 个测试?怎么了?
请您参考如下方法:
你没有错误,因为你没有运行测试。您的测试文件名必须以 test 开头,例如 test_something.py 并且该文件夹需要有一个 __init__.py 文件。
有关 django 如何发现要运行的测试的更多信息,请点击此处:https://docs.djangoproject.com/en/2.2/topics/testing/overview/#running-tests
