Hi Ronny,

We’ve had the same need at work, although it seems in a smaller scale than
yours. This is the approach we took:

Shared tests are always in classes without a Test prefix so they won’t be
collected. Those base classes may be then subclassed in different projects
and implement the required fixtures:

# file in a "base project" somewhereclass BaseSerializerTests:

    @pytest.fixture
    def serializer(self):
        assert 0, 'implement fixture in your subclass'

    def test_dump(serializer):
        d = {'data': 1}
        assert serializer.loads(serializer.dumps(d)) == d

    def test_numericals(serializer):
        assert serializer.loads(serializer.dumps(99)) == 99

# file in "json" project somewherefrom base_project import BaseSerializerTests
class TestJSONSerializer(BaseSerializerTests):

    @pytest.fixture
    def serializer(self):
        return JSONSerializer()

# file in "hdf" project somewherefrom base_project import BaseSerializerTests
class TestHDFSerializer(BaseSerializerTests):

    @pytest.fixture
    def serializer(self, tmpdir):
        return HDFSerializer(tmpdir.join('test.hdf'))

The advantages are that we don’t need to customize pytest at all and tests
added to the base test classes propagate naturally to the subclasses in
other projects. Also, each fixture is free to depend on other fixtures
naturally, like tmpdir on the second example.

Not sure if the above scales for your company thought.

Back to your proposal: can’t it be implemented as a plugin instead of in
the core?

Cheers,
Bruno.
​

On Wed, Aug 31, 2016 at 2:37 PM Ronny Pfannschmidt <[email protected]>
wrote:

> Hi everyone,
>
> at work i am hitting a problem where tests have to be shared between
> teams, while fixtures may differ
>
> in order to ease that i came up with a initial idea for specifying where
> to look for tests in pytest.ini
>
>
> example:
> [pytest]
> collect_roots=
>   base=module://framework.basetests
>   myteam=file://./test/
>
>
> with a default value of
>
> collect_roots=
>   . = file://.
>
>
> the specification would give the possibility to make test suite repos
> and import test suites
>
>
>
> --
>
> Red Hat GmbH, http://www.de.redhat.com/, Registered seat: Grasbrunn,
> Commercial register: Amtsgericht Muenchen, HRB 153243,
> Managing Directors: Charles Cachera, Michael Cunningham, Michael O'Neill, 
> Eric Shander
>
> _______________________________________________
> pytest-dev mailing list
> [email protected]
> https://mail.python.org/mailman/listinfo/pytest-dev
>
_______________________________________________
pytest-dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pytest-dev

Reply via email to