Как проверить только одну контрольную функцию?
В моем пакете Go есть несколько тестовых файлов, таких как map1_benchmark_test.go
и map2_benchmark_test.go
. В каждом файле *_benchmark_test.go
существует более чем одна эталонная функция, такая как func BenchmarkMapTravel(b *testing.B)
и func BenchmarkMapGet(b *testing.B)
.
Вопрос в том, как я могу проверить только одну контрольную функцию?
Я попытался прочитать несколько руководств и ничего не получил о тестах, запустив go help test
.
Ответы
Ответ 1
Описание флажков тестирования
-test.bench pattern
Run benchmarks matching the regular expression.
By default, no benchmarks run.
-test.run pattern
Run only those tests and examples matching the regular
expression.
Для удобства каждый из этих флагов -test.X
тестового двоичного кода также доступен как флаг -X
в 'go test
'.
Для справки
$ go help testflag
Например,
go test -test.bench MapTravel
go test -test.bench MapGet
или
go test -bench MapTravel
go test -bench MapGet
Чтобы обойти тестовые функции, включите шаблон -test.run
, который отфильтровывает каждый отдельный тест. Например,
go test -test.bench MapTravel -test.run=thisexpressionwontmatchanytest
или
go test -bench MapTravel -run=^$
Ответ 2
Нет никакого флага, который вы можете предоставить, который будет запускать только тесты (или только один контрольный показатель). только связанные флаги:
-bench regexp Выполнить тесты, соответствующие регулярному выражению. По умолчанию тесты не выполняются. Чтобы запустить все тесты, использовать '-bench.' или '-bench =.'.
-run regexp Выполните только те тесты и примеры, которые соответствуют регулярным выражение.
Итак, если вы хотите только запустить один тест, вы можете сделать это:
go test -bench=nameOfYourBenchmark -run=^a
Это приведет к запуску только тестов, начинающихся с a
. И поскольку каждый тест должен быть назван Test<something>
, тестов не будет.
Для запуска только эталонных тестов:
go test -bench=. -run=^a
Ответ 3
Только тест TestFuncOne
$>> go test -run TestFuncOne
stuff_to_test.go
TestFuncOne() {
}
TestFuncTwo() {
}