我可以将鼻子覆盖范围输出限制到目录(而不是包裹)吗?

Dar*_*zer 18 python code-coverage nose nosetests

我的SUT看起来像:

foo.py
bar.py
tests/__init__.py [empty]
tests/foo_tests.py
tests/bar_tests.py
tests/integration/__init__.py [empty]
tests/integration/foo_tests.py
tests/integration/bar_tests.py
Run Code Online (Sandbox Code Playgroud)

当我跑步时nosetests --with-coverage,我得到了我宁愿忽略的各种模块的细节.但是我不能使用该 --cover-package=PACKAGE选项,因为foo.py&bar.py不在包中.(请参阅http://lists.idyll.org/pipermail/testing-in-python/2008-November/001091.html之后的帖子, 以了解我没有将它们放入包中的原因.)

我可以将coverage输出限制为foo.py和bar.py吗?

更新 - 假设没有比下面的Nadia更好的答案,我问了一个跟进问题:"如何编写一些(bash)shell脚本将目录中所有匹配的文件名转换为命令行选项? "

Nad*_*mli 20

你可以像这样使用它:

--cover-package=foo --cover-package=bar
Run Code Online (Sandbox Code Playgroud)

我快速浏览一下鼻子源代码来确认:这就是这条线

    if options.cover_packages:
        for pkgs in [tolist(x) for x in options.cover_packages]:
Run Code Online (Sandbox Code Playgroud)


小智 13

您可以使用:

--cover-package=.
Run Code Online (Sandbox Code Playgroud)

甚至设置环境变量

NOSE_COVER_PACKAGE=.
Run Code Online (Sandbox Code Playgroud)

用鼻子1.1.2测试

  • 我使用这个从site-packages报告了覆盖率:/ (10认同)
  • 你用virualenv吗?在virtualenv中我也得到了这一点 (2认同)