Merged in davehunt/pytest/env-addopts (pull request #241)

Support setting configuration using the PYTEST_ADDOPTS environment variable
This commit is contained in:
Floris Bruynooghe 2015-02-09 16:33:36 +00:00
commit 459d6e610c
5 changed files with 14 additions and 1 deletions

View File

@ -46,3 +46,4 @@ Trevor Bekolay
David Mohr
Nicolas Delaby
Tom Viner
Dave Hunt

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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,]