How to split tests in the same go file using filter such as `--run $TestFoo^`

my Makefile:

PACKAGES_E2E_XXX=$(shell go list -tags=e2e_xxx ./... | grep '/itest/xxx')

test-e2e-xxx: clean-e2e install-something
	@go test -mod=readonly -timeout=25m -v $(PACKAGES_E2E_XXX) -count=1 --tags=e2e_xxx

my job definition in config.yml

test_e2e_xxx:
    machine:
      image: ubuntu-2204:2024.01.1
    resource_class: large
    steps:
      - go/install:
          version: "1.21.4"
      - checkout
      - run:
          name: Print Go environment
          command: "go env"
      - go/load-cache:
          key: go-mod-v6-{{ checksum "go.sum" }}
      - add_ssh_keys
      - go/mod-download
      - go/save-cache:
          key: go-mod-v6-{{ checksum "go.sum" }}
          path: "/home/circleci/.go_workspace/pkg/mod"
      - run:
          name: Download some data
          command: |
            make download-e2e-data
      - run:
          name: Run integration tests
          command: |
            make test-e2e-xxx

the problem is test-e2e-xxx take too long b/c there are many tests in the same .go file

I want to use pattern matching with the --run tag to split test those tests

how can I do it with circleci tests run? I looked into docs about “parallelism-faster-jobs” but still not sure how to write the command

hi there have you read this article

hey thanks for the reply. yes I have read that article and tried with the command but I don’t know why it doesn’t find any tests.