onsi / ginkgo

A Modern Testing Framework for Go
http://onsi.github.io/ginkgo/
MIT License
8.38k stars 660 forks source link

Test packages with specific build tags #1465

Open littleskew opened 1 month ago

littleskew commented 1 month ago

Hello!

It seems to me that there is a problem with running test packages with specific build tags.

I have ginkgo specs in one of my packages and I'm trying to run tests in packages with specific build tags. When I'm doing it with go test -tags=my_tag ./... then only tests of underlying packages with the tag //go:build my_tag are run. But when I use ginkgo -v -tags=my_tag ./... or ginkgo build -tags=my_tag ./... then somewhy Ginkgo is trying to compile all packages with different build tags and fails with the error:

Failed to compile mypackage:
package /test/mypackage: build constraints exclude all Go files in /Users/testuser/go/src/test/mypackage
.... 

Ginkgo ran 12 suites in 3.456281959s (even though I have only one package with that tag)

There were failures detected in the following suites:
          mypackage ./test/mypackage [Compilation failure]

Is it expected and I am doing something wrong or is it an existing issue?

This also happens if running ginkgo without tags flag but on ./... packages and some of the underlying packages have build tags.

Thanks in advance!

onsi commented 3 weeks ago

hey, sorry for the delay. yeah Ginkgo won't filter out the packages when run with tags. It simply passes tags to the go compiler. In the case wehre a package is entirely ruled out by the tag rules this will result in a non-existent package and Ginkgo will fail. I don't have a great answer for you other than to use -tags in tandem with -skip-package