2

我有一个在 Travis CI 中构建的 GO 项目。我已经用 Ginkgo 实现了一些测试,当我在本地运行它时我得到了代码覆盖率,但是当我在 Travis 上运行它时我没有得到覆盖率。

我的 .travis.yml

language: go

# safelist
branches:
  only:
  - master
  - travis

before_install:
  - go get github.com/onsi/gomega
  - go get github.com/onsi/ginkgo/ginkgo
  - go get github.com/modocache/gover

script:
  - ginkgo -r --randomizeAllSpecs --randomizeSuites --failOnPending --cover --trace --race --compilers=2

after_success:
  - gover . coverage.txt
  - ls -al
  - cat coverage.txt
  - bash <(curl -s https://codecov.io/bash)

当我在自己的机器上运行脚本命令时,我得到以下结果

$ ginkgo -r --randomizeAllSpecs --randomizeSuites --failOnPending --cover --trace --race --compilers=2
Running Suite: Gitserver Suite
==============================
Random Seed: 1470431018 - Will randomize all specs
Will run 4 of 4 specs

++++
Ran 4 of 4 Specs in 0.000 seconds
SUCCESS! -- 4 Passed | 0 Failed | 0 Pending | 0 Skipped PASS
coverage: 25.9% of statements

Ginkgo ran 1 suite in 4.411023s
Test Suite Passed

但是在 travis CI 上,覆盖面说“声明的 0.0%”

我试图在我的本地机器上设置一个新的 GOPATH 以获得一个干净的设置,并且只运行出现在 Travis 日志中的命令,我仍然得到报告的 25% 的覆盖率。我的机器运行的是 Windows,而 Travis 是 linux,这是我现在能想到的唯一区别。

我刚刚在我的包裹上尝试了 GoCover.io,这也给了我在本地获得的 25% 的覆盖率。

4

2 回答 2

0

在我通过他们的 docker 镜像在本地运行 travis 构建后,我终于让它工作了。由于某种原因我需要指定要覆盖哪个包,所以把 ginkgo 命令改成了

ginkgo -r --randomizeAllSpecs --randomizeSuites --failOnPending --coverpkg gitserver --trace --race --compilers=2
于 2016-08-11T18:06:45.127 回答
0

以下命令似乎对我有用。

ginkgo  -r --randomizeAllSpecs --randomizeSuites --cover --race --trace

如果您想了解更多信息,请查看此处的文档

于 2018-11-02T18:06:22.700 回答