PCQRSCANER/venv/Lib/site-packages/nltk/test/runtests.py
2019-12-22 21:51:47 +01:00

82 lines
2.5 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import absolute_import, print_function
import sys
import os
import nose
from nose.plugins.manager import PluginManager
from nose.plugins.doctests import Doctest
from nose.plugins import builtin
NLTK_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
sys.path.insert(0, NLTK_ROOT)
NLTK_TEST_DIR = os.path.join(NLTK_ROOT, 'nltk')
if __name__ == '__main__':
# there shouldn't be import from NLTK for coverage to work properly
from doctest_nose_plugin import DoctestFix
try:
# Import RedNose plugin for colored test output
from rednose import RedNose
rednose_available = True
except ImportError:
rednose_available = False
class NltkPluginManager(PluginManager):
"""
Nose plugin manager that replaces standard doctest plugin
with a patched version and adds RedNose plugin for colored test output.
"""
def loadPlugins(self):
for plug in builtin.plugins:
if plug != Doctest:
self.addPlugin(plug())
self.addPlugin(DoctestFix())
if rednose_available:
self.addPlugin(RedNose())
super(NltkPluginManager, self).loadPlugins()
manager = NltkPluginManager()
manager.loadPlugins()
# allow passing extra options and running individual tests
# Examples:
#
# python runtests.py semantics.doctest
# python runtests.py --with-id -v
# python runtests.py --with-id -v nltk.featstruct
args = sys.argv[1:]
if not args:
args = [NLTK_TEST_DIR]
if all(arg.startswith('-') for arg in args):
# only extra options were passed
args += [NLTK_TEST_DIR]
# Activate RedNose and hide skipped test messages from output
if rednose_available:
args += ['--rednose', '--hide-skips']
arguments = [
'--exclude=', # why is this needed?
# '--with-xunit',
# '--xunit-file=$WORKSPACE/nosetests.xml',
# '--nocapture',
'--with-doctest',
# '--doctest-tests',
# '--debug=nose,nose.importer,nose.inspector,nose.plugins,nose.result,nose.selector',
'--doctest-extension=.doctest',
'--doctest-fixtures=_fixt',
'--doctest-options=+ELLIPSIS,+NORMALIZE_WHITESPACE,+IGNORE_EXCEPTION_DETAIL,+ALLOW_UNICODE,'
'doctestencoding=utf-8',
# '--verbosity=3',
] + args
nose.main(argv=arguments, plugins=manager.plugins)