diff options
-rw-r--r-- | tox/_cmdline.py | 2 | ||||
-rw-r--r-- | tox/_config.py | 1 | ||||
-rw-r--r-- | tox/_venv.py | 8 |
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) |