$ go help packages
Многие команды применяются к набору пакетов:
go action [packages]
Обычно [packages] представляет собой список путей импорта.
Путь импорта, который являетсяукоренившийся путь или начинается с.или .. элемент интерпретируется как путь к файловой системе и обозначает пакет в этом каталоге.
В противном случае путь импорта P обозначает пакет, найденный в каталоге DIR / src / P для некоторого DIR, указанного в GOPATH.переменная окружения (подробнее см. 'go help gopath').
Если пути импорта не указаны, действие применяется к пакету в текущем каталоге.
В качестве особого случая,если список пакетов представляет собой список файлов .go из одного каталога, команда применяется к одному синтезированному пакету, составленному именно из этих файлов, игнорируя все ограничения сборки в этих файлах и игнорируя любые другие файлы в каталоге.
Список всех файлов в текущем каталоге, используемых в тесте:
go test sum_test.go sum.go
или просто тестирование полного пакета в текущем каталоге.
go test
Например,
$ go test -v sum_test.go sum.go
=== RUN TestSumInt8
--- PASS: TestSumInt8 (0.00s)
PASS
ok command-line-arguments 0.002s
$
или, для всего пакета
$ go test -v
=== RUN TestSumInt8
--- PASS: TestSumInt8 (0.00s)
PASS
ok so/sum 0.002s
$
Опция '-v' дает подробный вывод.
sum_test.go
:
package sum
import "testing"
// Check https://golang.org/ref/spec#Numeric_types and stress the limits!
var sum_tests_int8 = []struct {
n1 int8
n2 int8
expected int8
}{
{1, 2, 3},
{4, 5, 9},
{120, 1, 121},
}
func TestSumInt8(t *testing.T) {
for _, v := range sum_tests_int8 {
if val := SumInt8(v.n1, v.n2); val != v.expected {
t.Errorf("Sum(%d, %d) returned %d, expected %d",
v.n1, v.n2, val, v.expected)
}
}
}
sum.go
:
package sum
func SumInt8(a, b int8) int8 {
return a + b
}
func SumFloat64(a, b float64) float64 {
return a + b
}