coverity可用于扫描python代码库如果是,那么在cov build命令中要给出哪些输入最好有完整的cov命令序列来扫描python代码。

最佳答案

假设你有一个虚拟项目,看起来像:

src/
  file.py
  file2.py
  tests/
    test1.py
    test2.py
3rdparty/
  skip.py
setup.py

要分析除3rdparty文件夹之外的所有内容,可以执行以下命令:
cov-configure --python

cov-build --dir foo \
          --no-command \
          --fs-capture-search ./ \
          --fs-capture-search-exclude-regex ./3rdparty

cov-analyze --dir foo \
            --all \
            --aggressiveness-level high

cov-format-errors --dir foo \
                  --html-output results

cov-commit-defects --dir foo \
                   --host coverity.mycompany.com \
                   --stream MYSTREAM \
                   --auth-key-file mycoverity.key

说明:
cov-configure
通知Coverity您将扫描Python代码
cov-build
通知Coverity构建代码由于没有编译python,因此不需要构建(--no-command),但它仍然需要知道从哪里获取源代码(--fs-capture-search)。您可以添加多个--fs-capture-search--fs-capture-search-exclude-regex参数以满足您的需要。
cov-analyze
执行实际的代码分析。你可以通过很多开关,但我认为对于python来说,这些就足够了
cov-format-errors
在新的results文件夹中生成有用的html报告。支持其他输出格式,而不仅仅是html。
cov-commit-defects
将扫描结果提交到指定流的Coverity Connect中央服务器。要提交工作,您必须使用Coverity密钥文件(从Coverity Server Web UI下载此密钥)标识自己,并且此文件必须为用户只读(即chmod 400 mycoverity.key
注:以上各项对我公司的内部Coverity服务器(即付费产品)均有效。对于免费开放源码版本的coverity,情况可能有所不同(还没有测试过)。对于后面的例子,我将查看一些开源项目:https://github.com/search?q=--fs-capture-search&type=Code

10-07 21:38