[Go] Ausführung / Build / Pakettest

Voraussetzung Umgebung

· Mac OS ・ Goenv 2.0.0 Beta11 ・ Go Version go1.15.2 darwin / amd64

Ausführungsmethode

Dieses Mal werden wir die klassische Hello World betreiben.

Erstellen Sie vorerst eine Datei mit dem Namen ** hello.go ** direkt unter $ GOPATH und schreiben Sie dort das folgende Programm.

package main  //Paketdeklaration

import (  //Importieren Sie das zu verwendende Paket
    "fmt"
)

func main() {  //Funktion main(Einstiegspunkt)Definition von
    fmt.Println("Hello World")  
}

Öffnen Sie dann das Verzeichnis, in dem Sie die Datei erstellt haben, im Terminal, geben Sie `` `$ go run hello.go``` ein, und wenn ** Hello World ** angezeigt wird, ist die Ausführung erfolgreich.

Bauen

Als nächstes kompilieren Sie hello.go in ein ausführbares Dateiformat.

Sie können den Namen der ausführbaren Datei angeben, indem Sie den Befehl ** build ** wie unten gezeigt eingeben und die Option -o verwenden.

$ go build -o hello hello.go

Anschließend wird eine ausführbare Datei mit dem Namen ** Hallo ** erstellt, sodass Sie Hello World ausführen können, indem Sie einfach den folgenden Befehl in das Terminal eingeben.

$ ./hello
Hello World

Pakettests

Angenommen, Sie möchten die Dateien im Testverzeichnis testen, vorausgesetzt, die Paketstruktur lautet wie folgt.

Es wird auch das abhängige Modulverwaltungstool Module verwendet.

go mod init github.com/username/Es ist ein Testprojekt.


 * Obwohl es aus go 1.13 importiert wurde, befindet es sich in der Übergangszeit von go 1.11, kann aber durch Setzen von `` `export GO111MODULE = on`` `verwendet werden.

testproject │────── tests │ │────testA │ │────testB │ │────testC │
│────── main.go


 Erstellen Sie zunächst eine Datei unter dem Testverzeichnis, sodass ** _test.go ** endet. Dies ist eine festgelegte Regel beim Testen eines Pakets.

#### **`Beispiel)tests_test.go`**
```go


 Schreiben Sie den Inhalt der Datei tests_test.go wie unten gezeigt.

package tests

import ( "testing"

)

func TestJapaneseSubject(t *testing.T) { expect := "Japanese" actual := JapaneseSubject()

if expect != actual {
	t.Errorf("%s != %s", expect, actual)
}

}

func TestEnglishSubject(t *testing.T) { expect := "English" actual := EnglishSubject()

if expect != actual {
	t.Errorf("%s != %s", expect, actual)
}

}

func TestMathSubject(t *testing.T) { expect := "Math" actual := MathSubject()

if expect != actual {
	t.Errorf("%s != %s", expect, actual)
}

}


 Geben Sie dann den Befehl in das Terminal ein, führen Sie den Test aus. Wenn die Ausgabe wie folgt lautet, ist sie erfolgreich.

$ go test github.com/username/testproject/tests ok github.com/noa-1129/testproject/tests 0.506s


 Sie können die Details für jede Datei auch überprüfen, indem Sie die Option -v hinzufügen.

$ go test -v github.com/username/testproject/tests === RUN TestJapaneseSubject --- PASS: TestJapaneseSubject (0.00s) === RUN TestEnglishSubject --- PASS: TestEnglishSubject (0.00s) === RUN TestMathSubject --- PASS: TestMathSubject (0.00s) PASS ok github.com/username/testproject/tests 0.230s


## Schließlich
 In diesem Pakettest habe ich ** Go-Module ** als abhängiges Modulverwaltungstool verwendet, aber ich werde im nächsten Artikel über Go-Module schreiben!


Recommended Posts

[Go] Ausführung / Build / Pakettest
Python-Testpaket-Memo
Umweltbau, Build -Go-
Basian Network Package ~ Ausführung des Pebl-Tutorials ~
Erstellen Sie mit Docker eine Go-Umgebung
Was passiert, wenn Sie "bauen" gehen?