Chu*_*bur 7 python django unit-testing
我有一个非常标准的Django测试用例设置(我认为)
api-name
manage.py
api-name
__init__.py
settings.py
wsgi.py
v0
project
stuff.py
tests
test_stuff.py
Run Code Online (Sandbox Code Playgroud)
manage.py
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "api-name.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
Run Code Online (Sandbox Code Playgroud)
wsgi.py
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(__file__)))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "api-name.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Run Code Online (Sandbox Code Playgroud)
test_stuff.py
from django.test import TestCase
from v0.project.stuff import *
class ProjectTestCase(TestCase):
def setUp(self):
# set stuff up
def test_project_stuff(self):
# test stuff
def test_other_stuff(self):
# test stuff
Run Code Online (Sandbox Code Playgroud)
这是我执行测试时会发生的事情:
[cwilbur api-name]$ ./manage.py test
Creating test database for alias 'default'...
..
----------------------------------------------------------------------
Ran 2 tests in 0.014s
OK
Destroying test database for alias 'default'...
[cwilbur api-name]$ cd ..
[cwilbur source]$ ./api-name/manage.py test
Creating test database for alias 'default'...
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
Destroying test database for alias 'default'...
Run Code Online (Sandbox Code Playgroud)
这是(测试从项目的根目录运行,但不是从其他地方运行)预期的行为?有没有办法改变它以便它可以工作(我想从不同目录中的预提交钩子执行我的测试)?
我尝试from tests import *从这个答案添加,但它没有帮助.我也尝试sys.path.append将这行从wsgi.py移到manage.py,但这也无济于事.
我可以尝试其他任何想法吗?
迟来回答这个问题。但是希望这可以帮助某人:
python <project_path>/manage.py test <your_project_dir>
从Django文档中:
您还可以提供目录路径,以发现该目录下的测试:
Run Code Online (Sandbox Code Playgroud)$ ./manage.py test animals/
参考文献:
根据 @dizballanze 的评论和代码审查的反馈,我最终这样做了:
(cd /somedir && python manage.py test)
Run Code Online (Sandbox Code Playgroud)
不过,我仍然很好奇是否可以在不进入项目根目录的情况下运行测试。
| 归档时间: |
|
| 查看次数: |
1806 次 |
| 最近记录: |