diff --git a/AUTHORS b/AUTHORS index dfa9684b1..7ea65a0d8 100644 --- a/AUTHORS +++ b/AUTHORS @@ -46,3 +46,4 @@ Trevor Bekolay David Mohr Nicolas Delaby Tom Viner +Dave Hunt diff --git a/CHANGELOG b/CHANGELOG index f03f80889..50813920c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,8 @@ 2.7.0.dev (compared to 2.6.4) ----------------------------- +- add ability to set command line options by environment variable PYTEST_ADDOPTS. + - fix issue655: work around different ways that cause python2/3 to leak sys.exc_info into fixtures/tests causing failures in 3rd party code diff --git a/_pytest/config.py b/_pytest/config.py index c92374569..f4be2d062 100644 --- a/_pytest/config.py +++ b/_pytest/config.py @@ -705,6 +705,7 @@ class Config(object): def _preparse(self, args, addopts=True): self._initini(args) if addopts: + args[:] = shlex.split(os.environ.get('PYTEST_ADDOPTS', '')) + args args[:] = self.getini("addopts") + args self._checkversion() self.pluginmanager.consider_preparse(args) diff --git a/doc/en/customize.txt b/doc/en/customize.txt index 74d30f7ab..d323dd638 100644 --- a/doc/en/customize.txt +++ b/doc/en/customize.txt @@ -60,6 +60,11 @@ progress output, you can write it into a configuration file:: [pytest] addopts = -rsxX -q +Alternatively, you can set a PYTEST_ADDOPTS environment variable to add command +line options while the environment is in use:: + + export PYTEST_ADDOPTS="-rsxX -q" + From now on, running ``pytest`` will add the specified options. Builtin configuration file options diff --git a/testing/test_config.py b/testing/test_config.py index aa96c1d56..9dc5e3f23 100644 --- a/testing/test_config.py +++ b/testing/test_config.py @@ -18,12 +18,16 @@ class TestParseIni: def test_getcfg_empty_path(self, tmpdir): getcfg([''], ['setup.cfg']) #happens on py.test "" - def test_append_parse_args(self, testdir, tmpdir): + def test_append_parse_args(self, testdir, tmpdir, monkeypatch): + monkeypatch.setenv('PYTEST_ADDOPTS', '--color no -rs --tb="short"') tmpdir.join("setup.cfg").write(py.code.Source(""" [pytest] addopts = --verbose """)) config = testdir.parseconfig(tmpdir) + assert config.option.color == 'no' + assert config.option.reportchars == 's' + assert config.option.tbstyle == 'short' assert config.option.verbose #config = testdir.Config() #args = [tmpdir,]