aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGES.txt2
-rwxr-xr-xsetup.py1
-rw-r--r--setuptools/command/test.py10
3 files changed, 11 insertions, 2 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index aeba99ec..650b6de8 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -9,6 +9,8 @@ CHANGES
* Issue #97: Added experimental support for PEP 420 namespace package
discovery via the ``PEP420PackageFinder.find`` method. This new method will
discover packages for directories lacking an __init__.py module.
+* Issue #176: Add parameter to the test command to support a custom test
+ runner: --test-runner or -r.
---
3.3
diff --git a/setup.py b/setup.py
index 9e2e80e3..f76d371a 100755
--- a/setup.py
+++ b/setup.py
@@ -152,6 +152,7 @@ setup_params = dict(
"packages = setuptools.dist:check_packages",
"dependency_links = setuptools.dist:assert_string_list",
"test_loader = setuptools.dist:check_importable",
+ "test_runner = setuptools.dist:check_importable",
"use_2to3 = setuptools.dist:assert_bool",
"convert_2to3_doctests = setuptools.dist:assert_string_list",
"use_2to3_fixers = setuptools.dist:assert_string_list",
diff --git a/setuptools/command/test.py b/setuptools/command/test.py
index a9a0d1d7..24188332 100644
--- a/setuptools/command/test.py
+++ b/setuptools/command/test.py
@@ -51,12 +51,14 @@ class test(Command):
('test-module=','m', "Run 'test_suite' in specified module"),
('test-suite=','s',
"Test suite to run (e.g. 'some_module.test_suite')"),
+ ('test-runner=', 'r', "Test runner to use"),
]
def initialize_options(self):
self.test_suite = None
self.test_module = None
self.test_loader = None
+ self.test_runner = None
def finalize_options(self):
@@ -78,6 +80,8 @@ class test(Command):
self.test_loader = getattr(self.distribution,'test_loader',None)
if self.test_loader is None:
self.test_loader = "setuptools.command.test:ScanningLoader"
+ if self.test_runner is None:
+ self.test_runner = getattr(self.distribution, 'test_runner', None)
def with_project_on_sys_path(self, func):
if sys.version_info >= (3,) and getattr(self.distribution, 'use_2to3', False):
@@ -154,8 +158,10 @@ class test(Command):
loader_ep = EntryPoint.parse("x="+self.test_loader)
loader_class = loader_ep.load(require=False)
- cks = loader_class()
+ runner_ep = EntryPoint.parse("x=" + self.test_runner)
+ runner_class = runner_ep.load(require=False)
unittest.main(
None, None, [unittest.__file__]+self.test_args,
- testLoader = cks
+ testLoader=loader_class(),
+ testRunner=runner_class(),
)