2

我正在尝试诊断一些运行缓慢的单元测试,但我没有运气让探查器与django-nose一起工作。我想出了一个关于一个全新的 Django 项目的 repo 案例。

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,但结果相似。任何人都可以让这个相同的项目工作,或者指向我另一个解决方案来分析这个测试吗?

4

0 回答 0