如何将 travis ci 与 Python 中的 codeclimate 测试覆盖率集成?

How do I integrate travis ci with codeclimate test coverage in Python?

我正在尝试让我的 Travis CI 将测试覆盖率数据发送到 Code Climate 服务,但有关 Code Climate 和 Travis CI 的文档没有详细描述如何使用 Python。根据 Code Climate 和 Travis 文档,它仍然支持其功能。我试图在没有运气的情况下找到任何工作示例,但我自己无法让它工作。

代码气候文档: Setting Up Test Coverage, Readme: codeclimate-test-reporter

特拉维斯 CI 文档: Using Code Climate with Travis CI

我已经在 Travis CI 中设置了 CODECLIMATE_REPO_TOKEN,如此回答中所述:

我的 .travis.yml 文件:

language: python
python:
  - 2.7
install:
  - pip install -r requirements.txt
  - pip install coverage
  - pip install codeclimate-test-reporter
#commands to run tests:
script:
  - python mytests.py
  - coverage run mytests.py
after_success:
  - codeclimate-test-reporter

因为在 Travis 中执行了 after_success 行,它在 log-view 中给了我这个:

/home/travis/build.sh: line 45: codeclimate-test_reporter: command not found

确实,在您看来,这只是 Peter 在评论中提到的类型问题。您的 after_success 应该有 codeclimate-test-reporter - 看起来您有,但 travis 正在报告其他内容。

现在来谈谈为什么我打开了赏金以及为什么实际上只有我不理解 codeclimate_test_reporter 是如何工作的。我想从 py.test 报道我的报道。 codeclimate_test_reporter 在 GitHub 上有一个漂亮的自述文件显示 how to create a coverage report。然而,从他们的示例来看,提供 codeclimate-test-reporter 作为 --cov 的参数似乎会自动向 codeclimate 发送报告。事实并非如此

使用py.test,你要做的是:

script:
- py.test --cov=YourModuleYouWantToCover test_folder
- codeclimate-test-reporter --file .coverage

奇迹发生了,我第一次收到有关 codeclimate 的报道!

我向 codeclimate-test-reporter 提交了一个 pull request 以更新他们的自述文件并且它已经被合并,所以希望对未来的人来说减少混淆!

codeclimate python-test-reporter 已被弃用。可以在 https://github.com/codeclimate/test-reporter/blob/master/examples/python_examples.md

找到使用 travis-ci 处理 python 测试报告的更新方法