Force retesting or disable test caching

TestingGo

Testing Problem Overview


Problem:

When I run the same go test twice the second run is not done at all. The results are the cached ones from the first run.

PASS    
ok      tester/apitests    (cached)

Links

I already checked https://golang.org/cmd/go/#hdr-Testing_flags but there is no cli flag for that purpose.

Question:

Is there a possibility to force go test to always run test and not to cache test results.

Testing Solutions


Solution 1 - Testing

There are a few options as described in the testing flags docs:

  • go clean -testcache: expires all test results
  • use non-cacheable flags on your test run. The idiomatic way is to use -count=1

That said, changes in your code or test code will invalidate the cached test results (there's extended logic when using local files or environment variables as well), so you should not need to invalidate the test cache manually.

Solution 2 - Testing

In Go11, I couldn't disable cache using GOCACHE with modules, I used -count=1 instead:

go test -count=1

Prior to Go11:

GOCACHE=off go test

Or, clean test cache and run test again:

go clean -testcache && go test 

Solution 3 - Testing

There's also GOCACHE=off mentioned here.

Solution 4 - Testing

The way that I fixed this (I'm using Visual Studio Code on macOS):

Code > Preferences > Settings

Click ... on the right hand side of the settings page

Click Open settings.json

Either:

  1. Add the following snippet to your settings.json file

    "go.testEnvVars": {
        "GOCACHE": "off"
    }
    
  2. Change the value of go.testEnvVars to include the following: "GOCACHE": "off"

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSimon FreyView Question on Stackoverflow
Solution 1 - TestingMarcView Answer on Stackoverflow
Solution 2 - TestingMuhammad SolimanView Answer on Stackoverflow
Solution 3 - TestingsoltyshView Answer on Stackoverflow
Solution 4 - TestingdistortedsignalView Answer on Stackoverflow