2015-04-17 13 views
8

Hi używam flagę podczas testowania w podróży:
file_test.go var ip = flag.String("ip", "noip", "test")iść flagę testowy: flag zapewnione, ale nie zdefiniowano

Używam tylko tego jednego pliku testowego. Działa to dobrze, gdy testujemy tylko jeden plik testowy, ale gdy wykonuję: go test ./... -ip 127.0.0.1 z tego samego pliku testowego, który mówi: flag provided but not defined.

Widziałeś to?

Pozdrowienia

Odpowiedz

5

flag.Parse() jest nazywany zanim flaga jest zdefiniowana.

Musisz się upewnić, że wszystkie definicje flag mają miejsce przed wywołaniem flag.Parse(), zwykle przez zdefiniowanie wszystkich flag wewnątrz funkcji init().

+1

Dzięki temu nadal działa tylko w tym samym pakiecie, ale nie w przypadku uruchamiania wszystkich testów z:./... –

+1

@ChrisG. jeśli testujesz wiele pakietów, wszystkie dostarczone flagi muszą być poprawne we wszystkich z nich. Nie da się tego obejść. – JimB

+0

Dzięki! Czy wiesz, jak zignorować test za pomocą polecenia regexp -run? –

Powiązane problemy