я думаю, что вы SOL с этим пакетом, но вот подобный подход с Go 1.7 Инструменты фондового тестирования:
package main
import "testing"
func TestSuite1(t *testing.T) {
t.Run("first test", func(t *testing.T) { t.Fail() })
t.Run("second test", func(t *testing.T) { t.Fail() })
}
func TestSuite2(t *testing.T) {
t.Run("third test", func(t *testing.T) { t.Fatal("3") })
t.Run("fourth test", func(t *testing.T) { t.Fatal("4") })
}
Пример вывода для одного набора:
therealplato/stack-suites Ω go test -run TestSuite1
--- FAIL: TestSuite1 (0.00s)
--- FAIL: TestSuite1/first_test (0.00s)
--- FAIL: TestSuite1/second_test (0.00s)
FAIL
exit status 1
FAIL github.com/therealplato/stack-suites 0.005s
Пример вывода для один тест:
therealplato/stack-suites Ω go test -run TestSuite2/third
--- FAIL: TestSuite2 (0.00s)
--- FAIL: TestSuite2/third_test (0.00s)
main_test.go:11: 3
FAIL
exit status 1
FAIL github.com/therealplato/stack-suites 0.005s
ли '-m' делать то, что вы ожидаете? Из документации: «Регулярное выражение для выбора методов тестовых наборов задает аргумент командной строки« -m », возможно, в сочетании с' -run', чтобы указать набор? – JimB
В соответствии с помощью «run» предназначен для запуска только тех тестов и примеров, которые соответствуют регулярному выражению ». Содержимое файла имеет только один тест, который вызывает метод набора. Поэтому 'go test' после анализа файлов может просто не найти совпадений, если он ищет что-то вроде' func TestBlah (t * testing.T) '... – Schultz9999
yes,' -run' выбирает функцию 'Test *' для запуска, который запускает конкретный пакет, а флаг '-m' будет фильтровать методы набора. – JimB