8

我试图让我的 Travis CI 将测试覆盖率数据发送到 Code Climate 服务,但是 Code Climate 和 Travis CI 的文档没有详细描述如何使用 Python 来做到这一点。根据 Code Climate 和 Travis 文档,它仍然支持它的功能。我试图在没有运气的情况下找到任何可行的示例,并且无法自行完成。

代码气候文档: 设置测试覆盖率自述文件:codeclimate-test-reporter

Travis CI 文档: 将 Code Climate 与 Travis CI 结合使用

我已经在 Travis CI 中设置了 CODECLIMATE_REPO_TOKEN,如本答案所述: https ://stackoverflow.com/a/31281481/1754089

我的 .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 行,因此它在日志视图中给了我这个:

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

2 回答 2

5

实际上,在您看来,这只是彼得在评论中提到的一种类型的问题。你after_success应该有codeclimate-test-reporter- 看起来你有它,但 travis 正在报告别的东西。

现在来谈谈我为什么要开赏金,以及为什么实际上只是我不了解 codeclimate_test_reporter 的工作原理。我想从 py.test 报告我的报道。codeclimate_test_reporter 在 GitHub 上有一个漂亮的自述文件,展示了如何创建覆盖率报告。但是,从他们的示例来看,提供 codeclimate-test-reporter 作为 --cov 的参数似乎会自动向 codeclimate 发送报告。事实并非如此

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

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

神奇的事情发生了,我第一次有一份关于 codeclimate 的报道!

我向 codeclimate-test-reporter 提交了一个拉取请求以更新他们的自述文件,并且它已被合并,因此希望对未来的人们减少混淆!

于 2016-08-22T11:54:49.647 回答
0

codeclimate python-test-reporter 已被弃用。使用 travis-ci 处理 python 测试报告的更新方法可以在https://github.com/codeclimate/test-reporter/blob/master/examples/python_examples.md找到

于 2019-12-23T19:13:41.750 回答