
Security News
ECMAScript 2025 Finalized with Iterator Helpers, Set Methods, RegExp.escape, and More
ECMAScript 2025 introduces Iterator Helpers, Set methods, JSON modules, and more in its latest spec update approved by Ecma in June 2025.
github.com/pessimisticep/zaptest
Test helpers to use a github.com/uber-go/zap logger in unit tests.
Package zaptest
implements test helpers that facilitate using a zap.Logger
in standard go unit tests.
This package is useful when running unit tests with components that use the https://github.com/uber-go/zap logging framework. In unit tests we usually want to suppress any logging output as long as the tests are not failing or they are started in a verbose mode.
$ go get github.com/pessimisticep/zaptest
You can use zaptest
in standard unit tests. All log output will be sent via
the testing.T
so it will only be shown if the test fails or if the -v
flag
was set.
Note that you can also use zaptest
in benchmarks because testing.B
also
implements the necessary logger interface.
func TestLogger(t *testing.T) {
l := zaptest.Logger(t)
l.Debug("This is a debug message, debug messages will be logged as well")
l.Info("Logs will not be shown during normal test execution")
l.Warn("You can see all log messages of a successful run by passing the -v flag")
l.Error("Additionally the entire log output for a specific unit test will be visible when a test fails")
}
Package zaptest
is also compatible with the https://github.com/onsi/ginkgo BDD
testing framework. As with the standard unit tests, any log output for a
specific test will only be printed if that test fails or if the test is running
in verbose mode. With ginkgo use ginkgo -v
to enable verbose output (go test -v
does not seem to work).
// TestedType is an example of some type you want to test.
// Note that the TestedType uses a zap logger.
type TestedType struct {
log *zap.Logger
}
// DoStuff is an example function of the TestedType which uses a logger.
func (tt *TestedType) DoStuff() error {
tt.log.Debug("Doing stuff")
return nil
}
// TestLoggerWriter shows how to use the LoggerWriter function for ginkgo tests.
// Run `ginkgo -v`to see the output of this test.
func TestLoggerWriter(t *testing.T) {
RegisterFailHandler(Fail)
RunSpecs(t, "Ginkgo Example Suite")
}
// Describe the TestedType using ginkgo/gomega.
var _ = Describe("TestedType", func() {
It("should do stuff", func() {
tt := &TestedType{log: zaptest.LoggerWriter(GinkgoWriter)}
Expect(tt.DoStuff()).To(Succeed())
})
})
You can also use zaptest
as library since it does not import the testing
package.
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ECMAScript 2025 introduces Iterator Helpers, Set methods, JSON modules, and more in its latest spec update approved by Ecma in June 2025.
Security News
A new Node.js homepage button linking to paid support for EOL versions has sparked a heated discussion among contributors and the wider community.
Research
North Korean threat actors linked to the Contagious Interview campaign return with 35 new malicious npm packages using a stealthy multi-stage malware loader.