Django测试找不到我的测试

hjqgdpho  于 2023-02-06  发布在  Go
关注(0)|答案(6)|浏览(154)

当我运行测试时,django运行0个测试。这是我的项目结构:

manage.py
- app/
  - main_app/
    - test/
       - tests_v1.py
       - tests_v2.py

我使用以下命令:

python manage.py test --pattern="tests_v*.py"

Django在0秒内运行了0个测试。我错过了什么?

gpfsuwkq

gpfsuwkq1#

test目录中添加__init__.py文件,然后导入其中的所有内容,如
__init__.py

from tests_v1 import *
from tests_v2 import *
    • 注**

tests_v1命名为tests_v1.py

rqcrx0a6

rqcrx0a62#

我今天面对了这个问题,结果发现我的问题是双重的。
1.创建tests文件夹后,我忘记从应用程序文件夹中删除www.example.com。 tests.py from my app folder after I've created my tests folder.
1.我没有添加__init__.py,它使我的目录成为一个包。
这花了我很多时间,所以我写了一个回应,以防万一别人面临同样的问题。我能够使我的测试工作,一旦我做了以下。

    • 解决方案:**

1.删除应用程序文件夹下的www.example.com。 tests.py under the app folder.
1.将__init__.py添加到我的测试文件夹中。

8oomwypt

8oomwypt3#

您可以指定测试所在的文件夹。请尝试以下操作:

python manage.py test app.mainapp.test
m3eecexj

m3eecexj4#

确保在所有测试用例(方法)前面加上“测试”。例如:

def test_create_cycles_with_valid_data(self):
9nvpjoqh

9nvpjoqh5#

类似的事情发生在我身上,答案与__init__.py有关,然而,这取决于你如何构建你的项目,在我的情况下,我有这样的东西:

├── apps
│   ├── app1
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── migrations/
│   │   ├── test/
│   │   │   ├── test_models.py
│   │   ├── models.py
│   │   ├── views.py
│   ├── app2
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── migrations/
│   │   ├── test.py
│   │   ├── models.py
│   │   ├── views.py
    .
    .
    .

获取:

Ran 0 tests in 0.000s

这个问题的解决方案是在tests文件夹和apps文件夹中添加__init__.py,结构如下:

├── apps
│   ├── __init__.py **
│   ├── app1
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── migrations/
│   │   ├── test/
│   │   │   ├── __init__.py **
│   │   │   ├── test_models.py
│   │   ├── models.py
│   │   ├── views.py
│   ├── app2
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── migrations/
│   │   ├── test.py
│   │   ├── models.py
│   │   ├── views.py
│   ├── app2
    .
    .
    .

希望这能帮助到其他人。

tp5buhyn

tp5buhyn6#

1) `python ./manage.py test appname.tests_v1.classname.function_name`

2) Else 

`pip install nose pinocchio django_nose`

add below line in settings.py 

TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
NOSE_ARGS = ['--with-spec', '--spec-color']  

then run 

`python manage.py test`

参考:http://hentzia.com/blog/bdd-with-python.html

相关问题