summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tox/_cmdline.py2
-rw-r--r--tox/_config.py1
-rw-r--r--tox/_venv.py8
3 files changed, 10 insertions, 1 deletions
diff --git a/tox/_cmdline.py b/tox/_cmdline.py
index 0236d17..43fe5bc 100644
--- a/tox/_cmdline.py
+++ b/tox/_cmdline.py
@@ -157,7 +157,7 @@ class Action(object):
raise tox.exception.InvocationError(
"%s (see %s)" % (invoked, outpath), ret)
else:
- raise tox.exception.InvocationError("%r" % (invoked, ))
+ raise tox.exception.InvocationError("%r" % (invoked, ), ret)
if not out and outpath:
out = outpath.read()
if hasattr(self, "commandlog"):
diff --git a/tox/_config.py b/tox/_config.py
index 4468d86..afb6544 100644
--- a/tox/_config.py
+++ b/tox/_config.py
@@ -442,6 +442,7 @@ class parseini:
section, "pip_pre", False)
vc.skip_install = reader.getbool(section, "skip_install", False)
+ vc.ignore_errors = reader.getbool(section, "ignore_errors", False)
return vc
diff --git a/tox/_venv.py b/tox/_venv.py
index 9114e69..762e684 100644
--- a/tox/_venv.py
+++ b/tox/_venv.py
@@ -361,6 +361,14 @@ class VirtualEnv(object):
val = sys.exc_info()[1]
self.session.report.error(str(val))
self.status = "commands failed"
+ if not self.envconfig.ignore_errors:
+ self.session.report.error(
+ 'Stopping processing of commands for env %s '
+ 'because `%s` failed with exit code %s'
+ % (self.name,
+ ' '.join([str(x) for x in argv]),
+ val.args[1]))
+ break # Don't process remaining commands
except KeyboardInterrupt:
self.status = "keyboardinterrupt"
self.session.report.error(self.status)