Тестовое покрытие Голанга с черным ящиком - PullRequest
0 голосов
/ 16 мая 2018

Моя проблема проста, но ответ остается неясным. Предположим, у меня есть пакет

package mypackage

func DoTheThing() int {
  return 5
}

Теперь предположим, что у меня есть тест, использующий в mypackage_test пакете

package mypackage_test

import "testing"
import . "mypackage"

func TestDoTheThing(t *testing.T) {
    if DoTheThing() != 5 {
        t.Error("there was a problem")
    }
}

Теперь я хочу узнать код покрытия пакета mypackage.

$ go test -cover
PASS
coverage: 0.0% of statements
ok      /my/path/mypackage 0.002s

Это должно быть 100%. Я пробовал также

$ go test -v -cover -coverpkg ./... ./...
=== RUN   TestDoTheThing
--- PASS: TestDoTheThing (0.00s)
PASS
coverage: 0.0% of statements in ./...
ok      /my/path/mypackage 0.002s  coverage: 0.0% of statements in ./...

Я не могу включить тест в mypackage, поэтому мне нужно знать охват кода mypackage в этой настройке.

Спасибо за ваше время.

1 Ответ

0 голосов
/ 16 мая 2018

После большого затирания клавиатуры я обнаружил, что это связано с тем, что я связывал каталог моего проекта с $GOPATH/src/.

Копирование проекта в $GOPATH/src/mypackage и запуск go test -cover правильно возвращает 100% покрытия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...