Предположим, у нас есть проект, в котором используется какой-то сторонний модуль (или библиотека, если вы sh), который используется только для тестирования (ie. github.com/stretchr/testify
). Таким образом, мы получим файл go.mod
, подобный следующему:
module example.org/myapp
go 1.13
require (
...
github.com/go-resty/resty/v2 v2.2.0
github.com/gorilla/mux v1.7.4
github.com/stretchr/testify v1.3.0
...
)
Как я вижу, нет никакой разницы между модулем, который используется для производственного кода, и свидетельством, которое используется только для тестирования (т.е. в отличие от в Java, где у нас есть области видимости зависимостей, такие как test
, compile
et c.) Так как компилятор golang знает, какая зависимость не требуется для среды выполнения и может быть опущена в скомпилированном двоичном файле?