aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/command/test.py
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools/command/test.py')
-rw-r--r--setuptools/command/test.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/setuptools/command/test.py b/setuptools/command/test.py
index 270674e2..ef0af12f 100644
--- a/setuptools/command/test.py
+++ b/setuptools/command/test.py
@@ -3,7 +3,8 @@ import operator
import sys
import contextlib
import itertools
-from distutils.errors import DistutilsOptionError
+from distutils.errors import DistutilsError, DistutilsOptionError
+from distutils import log
from unittest import TestLoader
from setuptools.extern import six
@@ -225,11 +226,17 @@ class test(Command):
del_modules.append(name)
list(map(sys.modules.__delitem__, del_modules))
- unittest_main(
+ exit_kwarg = {} if sys.version_info < (2, 7) else {"exit": False}
+ test = unittest_main(
None, None, self._argv,
testLoader=self._resolve_as_ep(self.test_loader),
testRunner=self._resolve_as_ep(self.test_runner),
+ **exit_kwarg
)
+ if not test.result.wasSuccessful():
+ msg = 'Test failed: %s' % test.result
+ self.announce(msg, log.ERROR)
+ raise DistutilsError(msg)
@property
def _argv(self):