[TIP] Can pytest identify python code that has no test
Ned Batchelder
ned at nedbatchelder.com
Thu Jan 10 16:29:53 PST 2019
There isn't a way to omit __init__.py files, but you can omit any file
that has 100% coverage, which should include all your __init__.py files:
[report]
skip_covered = True
--Ned.
On 1/10/19 2:57 PM, DZIOBEK, JOE wrote:
>
> Hey Ned,
>
> I wrote a script to create a __pytest__.py file in every subfolder
>
> Then I execute my tox/pytest/coverage command
>
> Then I delete the __init__.py files I created
>
> This all works, except I would like to omit *all the __init__.py
> files* in the coverage report, there are too many.
>
> *Is there a way to omit all __init__.py files, no matter how many
> subdirectories are in its path?*
>
> I have tried various combinations and am still looking online for
> solutions.
>
> This is what I have right now:
>
> coverage run -m --source=. pytest --ignore=virtualenv-15.1.0/
> --ignore=.tox
>
> coverage report -m --omit=.tox/*
>
> Thanks - Joe
>
> *From:*Ned Batchelder [mailto:nedbat at gmail.com] *On Behalf Of *Ned
> Batchelder
> *Sent:* Friday, January 04, 2019 4:07 PM
> *To:* DZIOBEK, JOE <jd5948 at att.com>; testing-in-python at lists.idyll.org
> *Subject:* Re: [TIP] Can pytest identify python code that has no test
>
> 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>
> [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
> <mailto: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/20190110/98908dba/attachment.htm>
More information about the testing-in-python
mailing list