https://github.com/zenizh/go-capturer
Capture stdout and/or stderr in Go.
https://github.com/zenizh/go-capturer
golang testing
Last synced: about 1 year ago
JSON representation
Capture stdout and/or stderr in Go.
- Host: GitHub
- URL: https://github.com/zenizh/go-capturer
- Owner: zenizh
- License: mit
- Created: 2017-12-11T02:16:19.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-06-10T04:07:17.000Z (about 3 years ago)
- Last Synced: 2025-03-27T06:22:57.732Z (about 1 year ago)
- Topics: golang, testing
- Language: Go
- Homepage: https://godoc.org/github.com/kami-zh/go-capturer
- Size: 8.79 KB
- Stars: 44
- Watchers: 2
- Forks: 9
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-capturer
[](https://godoc.org/github.com/kami-zh/go-capturer)
[](https://travis-ci.org/kami-zh/go-capturer)
[](https://goreportcard.com/report/github.com/kami-zh/go-capturer)
Capture `os.Stdout` and/or `os.Stderr` in Go.
This package is useful for writing tests which print some outputs using `fmt` package.
## Usage
This package provides `CaptureStdout()`, `CaptureStderr()` and `CaptureOutput()` functions to capture outputs.
```go
package main
import (
"fmt"
"os"
"github.com/kami-zh/go-capturer"
)
func ExampleCaptureStdout() {
out := capturer.CaptureStdout(func() {
fmt.Fprint(os.Stdout, "foo")
})
fmt.Println(out)
// Output: foo
}
func ExampleCaptureStderr() {
out := capturer.CaptureStderr(func() {
fmt.Fprint(os.Stderr, "bar")
})
fmt.Println(out)
// Output: bar
}
func ExampleCaptureOutput() {
out := capturer.CaptureOutput(func() {
fmt.Fprint(os.Stdout, "foo")
fmt.Fprint(os.Stderr, "bar")
})
fmt.Println(out)
// Output: foobar
}
```
## Installation
```
$ go get github.com/kami-zh/go-capturer
```
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/kami-zh/go-capturer.
## License
The package is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).