Как обеспечить покрытие кода для тестовых пакетов в Go - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь сгенерировать покрытие кода для моего 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

Я ищу способ создания правильного покрытия кода без ущерба для организации проекта.

Естьэто можно сделать?

1 Ответ

0 голосов
/ 25 октября 2019

Вы должны запустить

go test -coverprofile=coverage.out ./...
...