#
# File : profiling.py
#
from django.test.simple import DjangoTestSuiteRunner
from django.conf import settings
from django.utils import unittest
try:
import cProfile as profile
except ImportError:
import profile
class DjangoTestSuiteRunnerWithProfile(DjangoTestSuiteRunner):
def run_suite(self, suite, **kwargs):
runner = unittest.TextTestRunner(
verbosity=self.verbosity, failfast=self.failfast).run
profile.runctx(
'result = run_tests(suite)',
{
'run_tests': runner,
'suite': suite,
},
locals(),
getattr(settings,'TEST_PROFILE', None)
)
return locals()['result']
#
# File : settings.py
#
TEST_RUNNER = 'profiling.DjangoTestSuiteRunnerWithProfile'
TEST_PROFILE = 'unittest.profile'
Comments