Я пытаюсь сгенерировать покрытие кода для моего golang
проекта.
Моя настройка выглядит следующим образом:
- my_project
| - my_package
| | - my_dev_file.go
| | - test
| | | - my_dev_file_test.go
Эта настройка позволяет протестировать код с точкизрения клиента, который будет вызывать пакет, ничего не зная о его внутренней реализации. На момент продажи каталоги разработчика и тестовые каталоги четко разделены, что обеспечивает глобальную читаемость проекта.
Тестовый код выглядит следующим образом:
import (
"..."
"testing"
"path-to/my_package"
"..."
)
func TestSomething(t *testing.T) {
t.Run("should do something", func(t *testing.T) {
my_package.MyStruct.DoSomething()
// test something...
})
}
Эта установка работает нормально, еслитестирование касается.
Однако я не могу составить отчет о покрытии. Покрытие равно 0%
любой команде, которую я запускаю, начиная с:
go test -coverprofile=coverage.out ./.../test
OK path-to/test 0.005s coverage: 0.0% of statements
OK other-path-to/test 0.007s coverage: 0.0% of statements
Я ищу способ создания правильного покрытия кода без ущерба для организации проекта.
Естьэто можно сделать?