Export structure for testing only in Golang

I have a utility package that many other packages use. I also created some test structures that implement these interfaces. And I put them in interfaces_test.go

I would like to be able to import those test structures into other packages in my *_test.go files.

I saw something like this at http://golang.org/src/pkg/os/export_test.go , but all I try is getting an error like this:

 go test something/mypackage mypackage/ant_lat_lon_test.go:46: undefined: rutl.TestAntenner FAIL something/mypackage [build failed] 

Is there any way to do this?

+7
go
source share
1 answer

Files matching *_test.go are compiled only when testing the package of which they are part. If you are testing package A, which uses package B, you will not have access to the _test.go code from package B.

So, two options:

  • Always compile the test support code in package B.
  • If the test support code only depends on the exported interface B, consider splitting it into a separate package.
+4
source share

All Articles