Django 1.8 - 如何测试测试文件夹中的特定文件?
Django 1.8 - How do I test a specific file inside a tests folder?
这是我的目录:
CMSApp/tests/test_page.py
CMSApp/tests/test_user.py
CMSApp/models.py
CMSApp/views.py
我只想测试 test_page.py
。我可以这样做:
python manage.py test CMSApp/tests
但这将测试 test_page.py
和 test_user.py
。当我尝试
python manage.py test CMSApp/tests/test_page
它说:
No module named CMSApp/tests/test_page
当我尝试时:
python manage.py test CMSApp/tests/test_page.py
它说 NoneType object is not iterable
.
python manage.py test CMSApp.tests.test_page
您需要在 tests
目录中包含 __init__.py
才能使其成为模块。
python manage.py test tests.main.testMainPage.MainPageTests
其中 tests 和 main 是文件夹,需要有 init.py 文件,testMainPage 是 main 中的一个文件,MainPageTests 是这个文件的 class。
树视图:
tests
├── __init__.py
├── main
│ ├── __init__.py
│ ├── testMainPage.py
class MainPageTests 将保存你所有的测试
示例:
class MainPageTests(TestCase):
def test_my_view(self):
pass
有几种方法可以 运行 仅特定的测试,如文档中的 explained。
# Run all the tests in the animals.tests module
$ ./manage.py test animals.tests
# Run all the tests found within the 'animals' package
$ ./manage.py test animals
# Run just one test case
$ ./manage.py test animals.tests.AnimalTestCase
# Run just one test method
$ ./manage.py test animals.tests.AnimalTestCase.test_animals_can_speak
# You can also provide a path to a directory to discover tests below that directory:
$ ./manage.py test animals/
# You can specify a custom filename pattern match using the -p (or --pattern)
# option, if your test files are named differently from the test*.py pattern:
$ ./manage.py test --pattern="tests_*.py"
我发现使用 --pattern
参数特别方便,您可以在其中只提供测试文件名的唯一部分。例如,在您的情况下,您可以只写:
python manage.py test --pattern "*test_page*"
这样您甚至不必查找测试文件的整个路径。
这是我的目录:
CMSApp/tests/test_page.py
CMSApp/tests/test_user.py
CMSApp/models.py
CMSApp/views.py
我只想测试 test_page.py
。我可以这样做:
python manage.py test CMSApp/tests
但这将测试 test_page.py
和 test_user.py
。当我尝试
python manage.py test CMSApp/tests/test_page
它说:
No module named CMSApp/tests/test_page
当我尝试时:
python manage.py test CMSApp/tests/test_page.py
它说 NoneType object is not iterable
.
python manage.py test CMSApp.tests.test_page
您需要在 tests
目录中包含 __init__.py
才能使其成为模块。
python manage.py test tests.main.testMainPage.MainPageTests
其中 tests 和 main 是文件夹,需要有 init.py 文件,testMainPage 是 main 中的一个文件,MainPageTests 是这个文件的 class。
树视图:
tests
├── __init__.py
├── main
│ ├── __init__.py
│ ├── testMainPage.py
class MainPageTests 将保存你所有的测试 示例:
class MainPageTests(TestCase):
def test_my_view(self):
pass
有几种方法可以 运行 仅特定的测试,如文档中的 explained。
# Run all the tests in the animals.tests module $ ./manage.py test animals.tests # Run all the tests found within the 'animals' package $ ./manage.py test animals # Run just one test case $ ./manage.py test animals.tests.AnimalTestCase # Run just one test method $ ./manage.py test animals.tests.AnimalTestCase.test_animals_can_speak # You can also provide a path to a directory to discover tests below that directory: $ ./manage.py test animals/ # You can specify a custom filename pattern match using the -p (or --pattern) # option, if your test files are named differently from the test*.py pattern: $ ./manage.py test --pattern="tests_*.py"
我发现使用 --pattern
参数特别方便,您可以在其中只提供测试文件名的唯一部分。例如,在您的情况下,您可以只写:
python manage.py test --pattern "*test_page*"
这样您甚至不必查找测试文件的整个路径。