【发布时间】:2013-08-11 15:01:54
【问题描述】:
我正在为我的 Django 应用程序设置一个目录结构来分离功能测试和单元测试。我正在使用鼻子作为我的 Django 项目的测试运行器。
在 Django 项目的根目录下,我有一个名为“tests”的文件夹,其结构如下:
tests
├── __init__.py
├── functional
│ ├── __init__.py
└── unit
├── __init__.py
├── data.py
├── tests.py
如果我只想运行单元测试,我是否不能从项目根目录中使用以下内容:
$ nosetests tests.unit
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
如您所见,这并没有在 tests.py 文件中找到测试。
但是,当我使用目录结构运行时,会按原样找到测试:
$ nosetests tests/unit/
E
# .. Some errors I expected because settings are not initialized when called this way
-----------------
Ran 1 test in 0.001s
FAILED (errors=1)
我错过了什么?我的主要问题是我在tests.unit.__init__.py 中有一个setup 函数,应该调用它来为即将进行的测试在测试数据库中创建数据。
谢谢
【问题讨论】:
-
您可能需要在第一个 init 中包含导入单元吗? (只是把它扔在那里)
-
@sihrc 不这么认为,因为我可以使用 python 命令行
python -c 'import tests.unit'从同一目录导入unit.tests模块 -
您是否尝试在详细模式下运行鼻子?尝试使用
-v和-vv看看他们是否提供了有关测试发现的任何提示。
标签: python django nose django-nose