aller de test ne peut pas trouver la fonction dans un même package
La structure de répertoire est :
src
src/pkg
src/pkg/t1.aller
src/pkg/t1_test.aller
t1.aller
package pkg
import (
"fmt"
)
func SayHI(){
fmt.Println("this is t1")
}
t1_test.aller
package pkg
import (
"testing"
)
func TestXYZ(t *testing.T) {
SayHI()
}
Invoquer aller tester en ligne de commande à dir src/pkg
aller tester t1_test.aller
d'erreur:
./t1_test.aller:8: undefined: SayHI
L'ÉCHEC de ligne de commande-arguments [build failed]
mais la fonction est-il
merci pour tous les conseils
- Qu'advient-il si vous exécutez seulement "passer le test" dans votre forfait, sans le nom de fichier?
Vous devez vous connecter pour publier un commentaire.
Il fonctionne comme prévu.
OIE:
go test
est correct.go test pkg
(en supposant que $GOPATH est ~ et que le colis est dans ~/src/pkg) est très bien.go test whatever_test.go
n'est pas correct ce qui n'est pas pris en charge comme documenté ci-dessus.Pour sélectionner les tests à exécuter, utiliser le
-run RE
drapeau (RE est une regexp, interprété comme*RE*
). Par exempleou
C'est un peu étrange dans Golang. Pour être honnête, il m'a fallu un certain temps pour trouver un moyen de sortir.
Simple de contourner cette difficulté est de les inclure dans la commande, par exemple:
go test src/pkg/t1.go src/pkg/t1_test.go
À mon humble avis, La meilleure façon est de le garder propre. Afin d'éviter d'avoir plus de 1 fichier en tant que dépendance par fichier de test. Si vous êtes à l'aide de +1 fichier de dépendance, d'envisager la création d'une " boîte noire test avec un
_test
paquet et ne pas faire usage de tout en minuscules interne vars.Cela vous évitera d'avoir à traiter avec des dépendances complexes sur votre journée à jour des tests.