[Go] Test d'exécution / construction / package

Environnement prérequis

・ MacOS ・ Goenv 2.0.0 bêta11 ・ Go version go1.15.2 darwin / amd64

Méthode d'exécution

Cette fois, nous exécuterons le classique Hello World.

Pour le moment, créez un fichier avec le nom ** hello.go ** directement sous $ GOPATH et écrivez-y le programme suivant.

package main  //Déclaration de colis

import (  //Importez le package à utiliser
    "fmt"
)

func main() {  //Fonction principale(Point d'accès)Définition de
    fmt.Println("Hello World")  
}

Ensuite, ouvrez le répertoire où vous avez créé le fichier dans le terminal, entrez $ go run hello.go```, et lorsque ** Hello World ** est affiché, l'exécution est réussie.

Construire

Ensuite, compilez hello.go dans un format de fichier exécutable.

Vous pouvez spécifier le nom du fichier exécutable en entrant la ** commande de construction ** comme indiqué ci-dessous et en utilisant l'option -o.

$ go build -o hello hello.go

Ensuite, un fichier exécutable appelé ** hello ** sera créé, vous pouvez donc exécuter Hello World en entrant simplement la commande suivante dans le terminal.

$ ./hello
Hello World

Test de paquet

Supposons que vous souhaitiez tester les fichiers dans le répertoire tests, en supposant que la structure du package est la suivante.

Il utilise également l'outil de gestion des modules dépendants Modules,

go mod init github.com/username/C'est un projet de test.


 * Il a été importé de go 1.13, mais il est dans la période de transition de go 1.11, mais il peut être utilisé en définissant ```export GO111MODULE = on```.

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


 Tout d'abord, créez un fichier sous le répertoire tests afin qu'il se termine ** _test.go **. Il s'agit d'une règle définie lors du test d'un package.

#### **`Exemple)tests_test.go`**
```go


 Écrivez le contenu du fichier tests_test.go comme indiqué ci-dessous.

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)
}

}


 Ensuite, entrez la commande dans le terminal, exécutez le test et si la sortie est la suivante, elle réussit.

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


 Vous pouvez également vérifier les détails de chaque fichier en ajoutant l'option -v.

$ 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


## finalement
 Dans ce test de package, j'ai utilisé ** Go Modules ** comme outil de gestion de module dépendant, mais j'écrirai sur les modules Go dans le prochain article!


Recommended Posts

[Go] Test d'exécution / construction / package
Mémo du package de test Python
Construction de l'environnement, construction -Go-
Paquet réseau Basian ~ Exécution du tutoriel Pebl ~
Créer un environnement go à l'aide de Docker
Que se passe-t-il lorsque vous «allez construire»?