diff --git a/Makefile b/Makefile index ea1297ec78..a57a1cb134 100644 --- a/Makefile +++ b/Makefile @@ -561,7 +561,9 @@ test: localunit localintegration remoteintegration localsystem remotesystem ## .PHONY: ginkgo-run ginkgo-run: .install.ginkgo $(GINKGO) version - $(GINKGO) -vv $(TESTFLAGS) --tags "$(TAGS) remote" $(GINKGOTIMEOUT) --flake-attempts 3 --trace --no-color $(GINKGO_JSON) $(if $(findstring y,$(GINKGO_PARALLEL)),-p,) $(GINKGOWHAT) $(HACK) + $(GINKGO) -vv $(TESTFLAGS) --tags "$(TAGS) remote" $(GINKGOTIMEOUT) --flake-attempts 3 --trace --no-color \ + $(GINKGO_JSON) $(if $(findstring y,$(GINKGO_PARALLEL)),-p,) $(if $(FOCUS),--focus "$(FOCUS)",) \ + $(if $(FOCUS_FILE),--focus-file "$(FOCUS_FILE)",) $(GINKGOWHAT) $(HACK) .PHONY: ginkgo ginkgo: diff --git a/test/README.md b/test/README.md index c54dd97334..1041fab6da 100644 --- a/test/README.md +++ b/test/README.md @@ -95,10 +95,13 @@ The following environment variables are supported by the test setup: You can run a single file of integration tests using the go test command: ``` -go test -v test/e2e/libpod_suite_test.go test/e2e/common_test.go test/e2e/config.go test/e2e/config_amd64.go test/e2e/your_test.go +make localintegration FOCUS_FILE=your_test.go ``` -If you want to run the tests with the podman-remote client, make sure to replace `test/e2e/libpod_suite_test.go` with `test/e2e/libpod_suite_remote_test.go`. +`FOCUS_FILE` file maps to ginkgo's `--focus-file` option, see the ginkgo +[docs](https://onsi.github.io/ginkgo/#location-based-filtering) for the accepted syntax. + +For remote tests use the `remoteintegration` Makefile target instead. ### Running a single integration test Before running the test suite, you have to declare which test you want run in the test @@ -112,18 +115,17 @@ It("podman inspect bogus pod", func() { ``` To mark this as the test you want run, you simply change the *It* description to *FIt*. Please note how -both the `F` and `I` are capitalized. +both the `F` and `I` are capitalized. Also see the ginkgo [docs](https://onsi.github.io/ginkgo/#focused-specs). -You can run a single integration test using the same command we used to run all the tests in a single -file. +*Note*: Be sure you remove the `F` from the tests before committing your changes or you will skip all tests +in that file except the one with the `FIt` denotation. +Alternatively you can use the `FOCUS` option which maps to `--focus`, again see the ginkgo +[docs](https://onsi.github.io/ginkgo/#description-based-filtering) for more info about the syntax. ``` -go test -v test/e2e/libpod_suite_test.go test/e2e/common_test.go test/e2e/config.go test/e2e/config_amd64.go test/e2e/your_test.go +make localintegration FOCUS="podman inspect bogus pod" ``` -*Note*: Be sure you remove the `F` from the tests before committing your changes or you will skip all tests -in that file except the one with the `FIt` denotation. - # System tests System tests are used for testing the *podman* CLI in the context of a complete system. It requires that *podman*, all dependencies, and configurations are in place. The intention of