Подтвердить что ты не робот

Как проверить только одну контрольную функцию?

В моем пакете 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.

4b9b3361

Ответ 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() {
}