Как получить покрытие для нескольких файлов в GOLANG
У меня есть пакет в GO-LANG, в котором есть несколько файлов, реализующих его. (все файлы находятся в одном каталоге)
file1: mypackage.go
package mypackage
func f1 () {}
file2: mypackage_addition.go
package mypackage
func f2 () {}
file3: mypackage_test.go
package mypackage
import "testing"
func TestF1 (t *testing.T) {
f1()
}
file4: mypackageAddition_test.go
package mypackage
import "testing"
func TestF2 (t *testing.T) {
f2()
}
Я делаю это для того, чтобы получить покрытие:
mypackage> $ tree
.
├── mypackage.go
├── mypackageAddition_test.go
├── mypackageAdditions.go
└── mypackage_test.go
0 directories, 4 files
mypackage> $ go test -v -coverprofile cover.out ./...
=== RUN TestF2
--- PASS: TestF2 (0.00s)
=== RUN TestF1
--- PASS: TestF1 (0.00s)
PASS
coverage: 0.0% of statements
ok github.com/MyDevelopment/mypackage 0.701s coverage: 0.0% of statements
mypackage> $ go tool cover -html=cover.out -o cover.html
mypackage> $ open cover.html
Когда я открываю HTML, я получаю покрытие только для f1().
F2 вызывается (я проверял это в отладке), и запуск f2 представлен в тексте, но не в файле html.
Любая помощь приветствуется.
1 ответ
Решение
Просто повторяя, что в моем комментарии
Итак, после тестирования я подумал о том же, но, похоже, когда я нажимаю на выпадающий список и переключаюсь на mypackage_adding.go, f2() покрывается. Это просто в другом файле. Просто измените файл в раскрывающемся списке на странице HTML.