Criando um novo módulo
Vamos criar um novo módulo.
Crie um novo diretório vazio (em algum lugar fora de $GOPATH/src), vá até esse diretório e, em seguida, crie um novo arquivo, hello.go
:
package hello
func Hello() string {
return "Hello, world."
}
Vamos escrever um teste também em hello_test.go:
package hello
import "testing"
func TestHello(t *testing.T) {
want := "Hello, world."
if got := Hello(); got != want {
t.Errorf("Hello() = %q, want %q", got, want)
}
}
Neste ponto, o diretório contém um pacote, mas não um módulo, porque não há um arquivo go.mod
. Se estivéssemos trabalhando em /home/gopher/hello e executássemos o teste agora, veríamos:
$ go test
PASS
ok _/home/gopher/hello 0.020s
$
A última linha resume o teste geral do pacote. Como estamos trabalhando fora do $GOPATH e também fora de qualquer módulo, o comando go
não conhece o caminho de importação (import path) para o diretório atual e cria um falso com base no nome do diretório: _/home/gopher/hello
.
Vamos tornar o diretório atual a raiz de um módulo usando go mod init
e, em seguida, tente go test
novamente:
$ go mod init example.com/hello
go: creating new go.mod: module example.com/hello
$ go test
PASS
ok example.com/hello 0.020s
$
Parabéns! Você escreveu e testou seu primeiro módulo.
O comando go mod init
escreveu um arquivo go.mod:
$ cat go.mod
module example.com/hello
go 1.12
$
Last updated