2017-07-26 1 views
-2

eine Dateistruktur wie folgt vor:go-Test verpasst Abdeckung entlang der Ausführungspfad

api -- 
    |_ routes.go 
    |_ handler.go 
impl-- 
    |_ impl.go 
    |_ impl_test.go 

Die „impl“ Datei enthält interne Implementierung von REST-APIs, für die die Handler und Routen in „handler.go“ sind und "route.go" Dateien jeweils.

Soweit die Verpackung geht, ist alles unter "api" Ordner im "api" Paket. Der Code in "impl.go" ist im "impl" -Paket und der Code im "impl_test" -Paket im "impl_test" -Paket.

api ------- 
      |_ routes 
      |_ handler functions 
impl------- 
      |_ impl functions 
impl_test-- 
      |_ test functions 

Die Testfunktion startet einen HTTP-Server auf einen lokalen offenen Port mit den Routen und Handler in der „api“ -Paket zu hören und dann die APIs aufrufen.

Der Abdeckungsbericht zeigt jedoch eine Abdeckung von 0% für den Code im "api" -Paket und von nicht null für "impl".

Kann jemand bitte erklären, warum die Abdeckung für ein Paket und nicht das andere gemessen wird? Und ob es eine Möglichkeit gibt, das zu beheben?

+3

Abdeckung Test ist nur für ein Paket. – JimB

+2

Obwohl es [gocovmerge] (https://github.com/wadey/gocovmerge) gibt, um damit zu helfen. – Adrian

+0

"Testabdeckung gilt nur für ein Paket". Wie wird dieses Paket ausgewählt? Warum in meinem Fall ist es der "impl" und nicht "api"? –

Antwort