tg-me.com/golang_for_two/54
Last Update:
Note #29 Testing.short или разделяем тестовые прогоны 📝
Недавно наткнулся на интересную тему: разделение Go тестов на быстрые или медленные те например unit и integration tests. Все собрал в короткую заметку:
A) Стандартный подход использую `testing.Short` [2]:
func TestQuick(t *testing.T) {
...
}
func TestTimeConsuming(t *testing.T) {
if testing.Short() {
t.Skip("skipping test in short mode.")
}
}
Если выполнить:
$ go test -short
То мы пропустим тест
TestTimeConsuming
и выполним только TestQuick
B) Использовать build tags самый, на мой взгляд, гибкий подход:
Те создаем
integration_test.go
файл и добавляем билд тэги [1]:// +build integration
func TestTimeConsuming(t *testing.T) {
// ...
}
Далее просто запускаем:
$ go test -tags=integration
С) Использовать -test.run RegExp [2]:
Можно именовать тесты с префиксом понятным всей команде:
func TestQuickUnit(t *testing.T) {
...
}
func TestIntegraion(t *testing.T) {
...
}
И далее просто:
$ go test -run Integration
$ go test -run Unit
P.S. еще как вариант можно добавить разделение с помощью переменных окружения
А как сделано в вашем проекте? Поделиться можно в личку или чат
Links:
[1] https://golang.org/pkg/go/build/
[2] https://golang.org/cmd/go/#hdr-Testing_flags
[3] https://golang.org/pkg/testing/
BY 🇺🇦 Go for two :)
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/golang_for_two/54