Golden Files
As part of our testing suite we leverage golden file testing. All the golden files that are committed must have a consistent way of updating them.
For this purpose, we define the -update
flag in all the packages that contain
golden file tests.
To update all the golden files, run the following command:
go test ./... -update
To update a specific package, run the following command:
go test ./path/to/package -update
The flag should be registered as a package global variable:
var update = xtest.UpdateGoldenFiles()
Non-determinism
Some tests require golden files that are non-deterministic in nature. For
example the private keys and the associated certificates are naturally
non-deterministic. For tests that rely on these golden files, we have a separate
flag -update-non-deterministic
.
To update all the non-deterministic golden files, run the following command:
go test ./... -update-non-deterministic
To update a specific package, run the following command:
go test ./path/to/package -update-non-deterministic
The flag should be registered as a package global variable:
var updateNonDeterministic = xtest.UpdateNonDeterminsticGoldenFiles()