[TIP] Can pytest identify python code that has no test

Ned Batchelder ned at nedbatchelder.com
Fri Jan 4 13:06:53 PST 2019


Coverage will only find files that it considers importable.  It's 
essential that you have __init__.py files in the subdirectories. Those 
files can be empty, no one needs to update them.

Your original output showed a __init__.py file, but this latest run does 
not.

--Ned.

On 1/4/19 2:31 PM, DZIOBEK, JOE wrote:
>
> Hi Ned,
>
> Yes, my tox.ini file is as described earlier:
>
> commands =
>
> coverage run -m --source=. pytest --ignore=virtualenv-15.1.0/ 
> --ignore=.tox
>
> coverage report -m --omit=.tox/*
>
> For additional debugging, I added another py file to my root folder, 
> so now I have:
>
> script.py
>
> test_script.py
>
> scriptB2.py ( which does not have an associated test script! )
>
> Then a subfolder (actually 5 levels deep, see below)
>
> scriptA.py
>
> test_scriptA.py
>
> scriptB.py ( which does not have an associated test script! )
>
> Executing the tox command again, I now get an improved picture:
>
> Name Stmts   Miss  Cover   Missing
>
> -------------------------------------------------------------------------------------------------------
>
> sub/sub2/sub3/sub4/sub5/scriptA.py 2      0   100%
>
> sub/sub2/sub3/sub4/sub5/test_scriptA.py 3      0   100%
>
> script.py                        4      1    75%   3
>
> scriptB2.py 142    142     0%   3-322
>
> test_script.py 3      0   100%
>
> -------------------------------------------------------------------------------------------------------
>
> So we found the UNTESTED scriptB2.py in root folder – exactly what we 
> want.
>
> It did not find the UNTESTED script.py in the deeper folder.
>
> Any ideas? BTW, I don’t have any __init__.py files in any folder.
>
> PS: Bruno, your idea with adding the import to the __init__.py file is 
> good, but requires someone to update that file, probably the same 
> person that forgot to write the test.py;
>
> Thanks for your help,
>
> Regards - Joe
>
> *From:*testing-in-python-bounces at lists.idyll.org 
> [mailto:testing-in-python-bounces at lists.idyll.org] *On Behalf Of *Ned 
> Batchelder
> *Sent:* Friday, January 04, 2019 11:59 AM
> *To:* testing-in-python at lists.idyll.org
> *Subject:* Re: [TIP] Can pytest identify python code that has no test
>
> Joe, since you have specified "--source=.", coverage will search your 
> tree for importable Python files, and report on them even if they are 
> never imported.  So you are already doing the right thing. I'm not 
> sure why it wouldn't show you that file.  Are you sure you are running 
> the commands you showed?
>
> --Ned.
>
> On 1/4/19 11:42 AM, Bruno Oliveira wrote:
>
>     Hi Joe,
>
>     On Fri, Dec 21, 2018 at 5:06 PM DZIOBEK, JOE <jd5948 at att.com
>     <mailto:jd5948 at att.com>> wrote:
>
>         Is there a way to have this file included in the report?
>
>     You are not seeing coverage information for scriptB.py not because
>     it does not have an associated test file, but because it was never
>     imported during the run (I'm assuming).
>
>     One way to have it to appear on the report is to import scriptB on
>     your __init__.py file, this way its coverage will be tracked.
>
>     Hope this helps,
>
>     Bruno
>
>
>
>     _______________________________________________
>
>     testing-in-python mailing list
>
>     testing-in-python at lists.idyll.org  <mailto:testing-in-python at lists.idyll.org>
>
>     http://lists.idyll.org/listinfo/testing-in-python  <https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.idyll.org_listinfo_testing-2Din-2Dpython&d=DwMDaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=HqXpIkByGFw24obqdoDmDw&m=pzoCcDdzPm0JZq_KFlE4flon2ylEw7Wn8WlOaZn3xgc&s=LZn-2waQlWLtBfotLco8eIxWEeII9mXtCXPlJ8rxaos&e=>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.idyll.org/pipermail/testing-in-python/attachments/20190104/b717244a/attachment.htm>


More information about the testing-in-python mailing list