[pytest-dev] top-level conftest.py not recognized when running tests in sub-directories

Anatoly Bubenkov bubenkoff at gmail.com
Thu Sep 25 14:03:37 CEST 2014


setup_ methods should just die :)
use fixtures everywhere instead

On 25 September 2014 14:01, Jens Hoffmann <jh at solute.de> wrote:

>  Okay, writing the example I found out what the actual problem is:
>
>
> In the minimal example the fixture *is* executed, before any test but
> *after* my test classes setup_method.
>
>
> I though expect that a session fixture is executed also before a classes
> setup_method (use case: fixture sets up DB, setup_method sets up some
> tables);
>
>
> Am I wrong?
>
>
> Jens
>
>
>
> On 09/25/2014 01:18 PM, Anatoly Bubenkov wrote:
>
> please upload fully reproducable small example somewhere
> or, ideally, create a test and have a PR with it
>
> On 25 September 2014 13:14, Jens Hoffmann <jh at solute.de> wrote:
>
>>  Yes, the directories test and test/module all contain a __init__.py;
>> sorry, that I didnt mention this important info.
>>
>> So from your question I guess that you expect py.test to find and execute
>> conftest.py in all the cases shown?
>>
>>
>> Jens
>>
>>
>>
>> On 09/25/2014 01:09 PM, Anatoly Bubenkov wrote:
>>
>> did you add __init__.py in all folders?
>>
>> On 25 September 2014 12:35, Jens Hoffmann <jh at solute.de> wrote:
>>
>>> Hi,
>>>
>>>
>>> we are working with pytest 2.6.2 and I run into a problem with my
>>> conftest session fixture setup.
>>>
>>> My project structure looks something like this:
>>>
>>> .
>>> ├── project
>>> │ └── module
>>> │ └── foo.py
>>> └── test
>>> ├── conftest.py
>>> └── module
>>> └── test_foo.py
>>>
>>>
>>> conftest.py contains a single fixture with scope="session" and
>>> autouse=True, setting up some database that is needed for every single
>>> unittest. So also test_foo.py depends on that database setup.
>>>
>>> Now some py.test runs:
>>>
>>> $ py.test
>>> => conftest.py called, database setup properly, tests pass
>>>
>>> $ py.test test/module
>>> => tests fail, fixture in conftest.py not executed
>>>
>>> $ py.test test/module/test_foo.py
>>> => tests fail, fixture in conftest.py not executed
>>>
>>> $ py.test -k MyTestClassContainedInTestFooDotPy
>>> => tests fail, fixture in conftest.py not executed
>>>
>>>
>>> Now my question/problem: Are all these outcoms expected behaviour? I
>>> hoped that all the runs would pass, that is execute my session fixture so
>>> that I wont need to always run my whole test suite.
>>>
>>>
>>> Thank you for your answer,
>>> Jens
>>>
>>> _______________________________________________
>>> Pytest-dev mailing list
>>> Pytest-dev at python.org
>>> https://mail.python.org/mailman/listinfo/pytest-dev
>>>
>>
>>
>>
>>  --
>> Anatoly Bubenkov
>>
>>
>>   --
>> Jens Hoffmann Softwareentwickler Datamanagement billiger.de solute gmbh
>> Zeppelinstraße 15 D-76185 Karlsruhe Tel: +49 (0)721 - 86956-24
>> <%2B49%20%280%29721%20-%2086956-24> Fax: +49 (0)721 - 86956-66
>> <%2B49%20%280%29721%20-%2086956-66> E-Mail: rsc at solute.de Web:
>> http://www.billiger.de Geschäftsführer: Lorenz Petersen Sitz: Karlsruhe
>> Registergericht: Amtsgericht Mannheim Registernummer: HRB 110579
>> Umsatzsteueridentifikationsnummer: DE234663798
>> http://cdn.billiger.com/static/mail/billiger_today_logo_dunkel_20140911.png
>>
>
>
>
>  --
> Anatoly Bubenkov
>
>
> --
> Jens Hoffmann Softwareentwickler Datamanagement billiger.de solute gmbh
> Zeppelinstraße 15 D-76185 Karlsruhe Tel: +49 (0)721 - 86956-24 Fax: +49
> (0)721 - 86956-66 E-Mail: rsc at solute.de Web: http://www.billiger.de
> Geschäftsführer: Lorenz Petersen Sitz: Karlsruhe Registergericht:
> Amtsgericht Mannheim Registernummer: HRB 110579
> Umsatzsteueridentifikationsnummer: DE234663798
> http://cdn.billiger.com/static/mail/billiger_today_logo_dunkel_20140911.png
>



-- 
Anatoly Bubenkov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pytest-dev/attachments/20140925/f99e6093/attachment-0001.html>


More information about the Pytest-dev mailing list