Как узнать, какие тесты охватывают указанный c Go код? - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь выяснить, есть ли способ узнать, какие тесты охватывают функции в моем коде Go. Я работаю на базе кода с другими разработчиками, поэтому я не написал все тесты / код самостоятельно.

Я вижу некоторые функции, которые частично или почти полностью покрыты, но они нигде не имеют ссылок (в своих или других пакетах), и функции не вызываются напрямую ни в одном из тестов.

Есть ли способ узнать, какие тесты охватывают указанный код c? Когда я попытался выяснить, возможно ли это, все, что я получил, - это статьи, показывающие, как писать / запускать тесты и получать процент охвата / выделения, но на самом деле ничего не показывает, если это вообще возможно.

Для записи я использую VS Code на linux и запускаю go test ./... -cover на своих терминалах, а также Ctrl+Shift+P -> "Go: Toggle Test Coverage In Current Package" для выделения покрытия в VS Code.

1 Ответ

2 голосов
/ 06 января 2020

Теперь, когда вы видите более полную картину с помощью комментариев, кажется, что у вас куча тестов, написанных кем-то (ми) менее опытными с Go, и ваша цель - очистить тесты, чтобы они следовали стандарту Go соглашений.

Если бы я столкнулся с этой задачей, моя стратегия, вероятно, заключалась бы в том, чтобы отключить все тесты в хранилище, используя тег сборки, который никогда не выполнялся, например:

// +build skip

package foo

Подтвердите, что все тесты отключены, запустив go test ./... -cover, и подтвердите, что у вас есть 0% охват везде.

Затем, тест за тестом, я бы переместил каждый тест на свое место и поставил это в новом файле без тега skip.

Если это большой проект, я бы, вероятно, делал по одному пакету за раз, или в некоторых других небольших, логических шагах, чтобы избежать монстров запрос. Используйте здесь свое собственное суждение.

Я бы также настоятельно сопротивлялся побуждению делать любые другие чистки или исправления одновременно. Моя цель состояла бы в том, чтобы сделать каждый пиар простой копировальной вставкой, так что обзор тривиален, и я бы сохранил список других обнаруженных мною очисток, чтобы сделать их позже.

...