def run_tests(test_labels, verbosity=1, interactive=True, extra_tests=None):
    """Selenium Test runner."""
    if not extra_tests:
        extra_tests = []
    dependencies = dependencies_met()
    if dependencies and not extra_tests:
        # Obtain a database test handler.
        testdb = TestDB(TEST_DB_NAME, FIXTURES, verbosity=0)
        extra_tests = get_selenium_tests(testdb, test_labels)
    if dependencies and extra_tests:
        print 'Preparing to run unittests and selenium tests.'
        # Start selenium rc and Django servers.
        selenium_rc = SeleniumRCThread(SELENIUM_RC_PATH)
        selenium_rc.start()
        django_server = DjangoThread(testdb)
        django_server.start()
        # Wait a couple of seconds for the servers to initialize.
        sleep(5)
    else:
        extra_tests = []
        print 'Running unittests but not selenium tests.'
    results = base_run_tests(test_labels, verbosity, interactive, extra_tests)
    if extra_tests:
        # Stop selenium server, and drop test database
        selenium_rc.stop()
        testdb.drop()
    return results
Beispiel #2
0
def run_tests(test_labels, verbosity=1, interactive=True,
              extra_tests=[]):
    """
    Test runner which displays a code coverage report at the end of the
    run.
    """
    coverage.use_cache(0)
    for e in getattr(settings, 'COVERAGE_CODE_EXCLUDES', []):
        coverage.exclude(e)
    coverage.start()
    results = base_run_tests(test_labels, verbosity, interactive, extra_tests)
    coverage.stop()

    coverage_modules = []
    if test_labels:
        for label in test_labels:
            label = label.split('.')[0]
            app = get_app(label)
            coverage_modules.append(_get_app_package(app))
    else:
        for app in get_apps():
            coverage_modules.append(_get_app_package(app))

    coverage_modules.extend(getattr(settings, 'COVERAGE_ADDITIONAL_MODULES', []))

    packages, modules, excludes, errors = get_all_modules(
        coverage_modules, getattr(settings, 'COVERAGE_MODULE_EXCLUDES', []),
        getattr(settings, 'COVERAGE_PATH_EXCLUDES', []))

    coverage.report(modules.values(), show_missing=1)
    if excludes:
        print >>sys.stdout
        print >>sys.stdout, "The following packages or modules were excluded:",
        for e in excludes:
            print >>sys.stdout, e,
        print >>sys.stdout
    if errors:
        print >>sys.stdout
        print >>sys.stderr, "There were problems with the following packages or modules:",
        for e in errors:
            print >>sys.stderr, e,
        print >>sys.stdout

    outdir = getattr(settings, 'COVERAGE_REPORT_HTML_OUTPUT_DIR', 'test_html')
    outdir = os.path.abspath(outdir)
    html_report(outdir, modules, excludes, errors)
    print >>sys.stdout
    print >>sys.stdout, "HTML reports were output to '%s'" %outdir

    return results
def run_tests(test_labels, verbosity=1, interactive=True, extra_tests=[]):
    """
    Test runner which displays a code coverage report at the end of the
    run.
    """
    coverage.use_cache(0)
    for e in getattr(settings, 'COVERAGE_CODE_EXCLUDES', []):
        coverage.exclude(e)
    coverage.start()
    results = base_run_tests(test_labels, verbosity, interactive, extra_tests)
    coverage.stop()

    coverage_modules = []
    if test_labels:
        for label in test_labels:
            label = label.split('.')[0]
            app = get_app(label)
            coverage_modules.append(_get_app_package(app))
    else:
        for app in get_apps():
            coverage_modules.append(_get_app_package(app))

    coverage_modules.extend(
        getattr(settings, 'COVERAGE_ADDITIONAL_MODULES', []))

    packages, modules, excludes, errors = get_all_modules(
        coverage_modules, getattr(settings, 'COVERAGE_MODULE_EXCLUDES', []),
        getattr(settings, 'COVERAGE_PATH_EXCLUDES', []))

    coverage.report(modules.values(), show_missing=1)
    if excludes:
        print >> sys.stdout
        print >> sys.stdout, "The following packages or modules were excluded:",
        for e in excludes:
            print >> sys.stdout, e,
        print >> sys.stdout
    if errors:
        print >> sys.stdout
        print >> sys.stderr, "There were problems with the following packages or modules:",
        for e in errors:
            print >> sys.stderr, e,
        print >> sys.stdout

    outdir = getattr(settings, 'COVERAGE_REPORT_HTML_OUTPUT_DIR', 'test_html')
    outdir = os.path.abspath(outdir)
    html_report(outdir, modules, excludes, errors)
    print >> sys.stdout
    print >> sys.stdout, "HTML reports were output to '%s'" % outdir

    return results
Beispiel #4
0
def run_tests(*args, **kwargs):
    from django.test.simple import run_tests as base_run_tests
    return base_run_tests(*args, **kwargs)
Beispiel #5
0
def run_tests(*args, **kwargs):
    from django.test.simple import run_tests as base_run_tests
    return base_run_tests(*args, **kwargs)