I have a package in GO-LANG that has several files implementing it. (all files are in the same directory)
file1: mypackage.go
package mypackage
func f1 () {}
file2: mypackage_addition.go
package mypackage
func f2 () {}
file3: mypackage_test.go
package mypackage
import "testing"
func TestF1 (t *testing.T) {
f1()
}
file4: mypackageAddition_test.go
package mypackage
import "testing"
func TestF2 (t *testing.T) {
f2()
}
I do this in order to get coverage:
mypackage> $ tree
.
├── mypackage.go
├── mypackageAddition_test.go
├── mypackageAdditions.go
└── mypackage_test.go
0 directories, 4 files
mypackage> $ go test -v -coverprofile cover.out ./...
=== RUN TestF2
--- PASS: TestF2 (0.00s)
=== RUN TestF1
--- PASS: TestF1 (0.00s)
PASS
coverage: 0.0% of statements
ok github.com/MyDevelopment/mypackage 0.701s coverage: 0.0% of statements
mypackage> $ go tool cover -html=cover.out -o cover.html
mypackage> $ open cover.html
When I open the html, I only get coverage for f1().
f2 is called (I verified it in debug), and the run of f2 is represented in the text, but not in the html file.
Any help is appreciated.
Just reiterating what is in my comment
So after testing this I thought the same thing but it is looking like when I hit the dropdown and switch to mypackage_adding.go, f2() is covered. It is just in a different file. Just change the file in the dropdown in the HTML page.