Есть два способа. Самый простой - использовать -run
флаг и предоставить шаблон, соответствующий названиям тестов, которые вы хотите запустить.
Пример:
$ go test -run NameOfTest
Смотрите документы для получения дополнительной информации.
Другой способ - назвать конкретный файл, содержащий тесты, которые вы хотите запустить:
$ go test foo_test.go
Но есть подвох. Это хорошо работает, если:
foo.go
находится в package foo
.
foo_test.go
находится в package foo_test
и импортирует 'Foo'.
Если foo_test.go
и foo.go
совпадают пакеты (общий случай), то вы должны назвать все остальные файлы, необходимые для сборки foo_test
. В этом примере это будет:
$ go test foo_test.go foo.go
Я бы рекомендовал использовать -run
шаблон. Или, где / когда это возможно, всегда запускайте все тесты пакетов.
-run
пожалуйста? Я не могу найти ручную ссылку на это.go help testflag
go test utils.go utils_test.go
выводok command-line-arguments 0.002s
. Он не запускает тест. Причина, по которой я хочу использовать этот тестовый режим, заключается в том, что пакет содержит много файлов, и они еще не компилируются, за исключением утилит. Поэтому я хотел бы завершить использование утилит перед работой над другими файлами. Как я могу это сделать ?-v
флаг (подробный). Из документов-v Verbose output: log all tests as they are run. Also print all text from Log and Logf calls even if the test succeeds.
Ответ @ zzzz в основном полный, но просто для того, чтобы избавить других от необходимости копаться в ссылочной документации, вы можете запустить один тест в пакете следующим образом:
Обратите внимание, что вы хотите передать имя теста, а не имя файла, в котором существует тест.
-run
Флаг на самом деле принимает регулярное выражение , так что вы можете ограничить испытательный пробег к классу тестов. Из документов:источник
При выполнении одного теста я обычно делаю:
-count 1
также гарантирует, что тест выполняется каждый раз вместо кэширования. Полезно, когда вы проводите тестирование в условиях гонки и у вас есть тест, который иногда дает сбой. В версиях Go, не использующих модули, то же самое можно было бы достичь путем настройки,GOCACHE=off
но это плохо взаимодействует с модулями Go.источник
в плагине intelliJ IDEA go-lang (и я полагаю, в jetbrains Gogland) вы можете просто установить вид теста в файл при запуске> редактировать конфигурации
источник
источник
Предотвращает кеширование результатов теста.
источник
go
тестового файла в этом пакете-run TestCaseFunc
источник