我正在尝试诊断一些运行缓慢的单元测试,但我没有运气使得探查器与django-nose一起工作。我想出了一个关于全新Django项目的回购案例。
django-admin.py startproject nosetest
cd nosetest/
virtualenv --no-site-packages --distribute virtualenv
source virtualenv/bin/activate
pip install django_nose
echo "
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory',
},
}
INSTALLED_APPS = INSTALLED_APPS + ('django_nose', )
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
" >> nosetest/settings.py
echo "
import unittest
import time
class SlowTestCase(unittest.TestCase):
def test_slow(self):
self.assertFalse(time.sleep(1))
" > nosetest/test.py
python manage.py test --with-profile
这应该在当前目录中创建一个新的Django项目,在virtualenv中安装一些依赖项,创建一个有效的settings.py,然后运行一个新的单元测试。
我期待在输出中看到各种函数调用。相反,我得到以下内容:
nosetests --verbosity 1 --with-profile
Creating test database for alias 'default'...
.
0 function calls in 0.000 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
0 0.000 0.000 profile:0(profiler)
----------------------------------------------------------------------
Ran 1 test in 1.002s
OK
Destroying test database for alias 'default'...
我已经尝试使用nose-cprof的cProfiler,但这会得到类似的结果。任何人都可以让同一个项目工作,或者指出另一个解决方案来分析这个测试吗?