aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/moricho/tparallel/README.md
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2021-02-22 20:37:25 +0100
committerDmitry Vyukov <dvyukov@google.com>2021-02-22 21:02:12 +0100
commitfcc6d71be2c3ce7d9305c04fc2e87af554571bac (patch)
treeb01dbb3d1e2988e28ea158d2d543d603ec0b9569 /vendor/github.com/moricho/tparallel/README.md
parent8f23c528ad5a943b9ffec5dcaf332fd0f614006e (diff)
go.mod: update golangci-lint to v1.37
Diffstat (limited to 'vendor/github.com/moricho/tparallel/README.md')
-rw-r--r--vendor/github.com/moricho/tparallel/README.md100
1 files changed, 100 insertions, 0 deletions
diff --git a/vendor/github.com/moricho/tparallel/README.md b/vendor/github.com/moricho/tparallel/README.md
new file mode 100644
index 000000000..cd358d155
--- /dev/null
+++ b/vendor/github.com/moricho/tparallel/README.md
@@ -0,0 +1,100 @@
+# tparallel
+[![tparallel](https://github.com/moricho/tparallel/workflows/tparallel/badge.svg?branch=master)](https://github.com/moricho/tparallel/actions)
+[![Go Report Card](https://goreportcard.com/badge/github.com/moricho/tparallel)](https://goreportcard.com/report/github.com/moricho/tparallel)
+[![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE)
+
+`tparallel` finds inappropriate usage of `t.Parallel()` method in your Go test codes.
+It detects the following:
+- `t.Parallel()` is called in either a top-level test function or a sub-test function only
+- Although `t.Parallel()` is called in the sub-test function, it is post-processed by `defer` instead of `t.Cleanup()`
+
+This tool was inspired by this blog: [Go言語でのテストの並列化 〜t.Parallel()メソッドを理解する〜](https://engineering.mercari.com/blog/entry/how_to_use_t_parallel/)
+
+## Installation
+
+### From GitHub Releases
+Please see [GitHub Releases](https://github.com/moricho/tparallel/releases).
+Available binaries are:
+- macOS
+- Linux
+- Windows
+
+### macOS
+``` sh
+$ brew tap moricho/tparallel
+$ brew install tparallel
+```
+
+### go get
+```sh
+$ go get -u github.com/moricho/tparallel/cmd/tparallel
+```
+
+## Usage
+
+```sh
+$ go vet -vettool=`which tparallel` <pkgname>
+```
+
+## Example
+
+```go
+package sample
+
+import (
+ "testing"
+)
+
+func Test_Table1(t *testing.T) {
+ teardown := setup("Test_Table1")
+ defer teardown()
+
+ tests := []struct {
+ name string
+ }{
+ {
+ name: "Table1_Sub1",
+ },
+ {
+ name: "Table1_Sub2",
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ t.Parallel()
+ call(tt.name)
+ })
+ }
+}
+
+func Test_Table2(t *testing.T) {
+ teardown := setup("Test_Table2")
+ t.Cleanup(teardown)
+ t.Parallel()
+
+ tests := []struct {
+ name string
+ }{
+ {
+ name: "Table2_Sub1",
+ },
+ {
+ name: "Table2_Sub2",
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ call(tt.name)
+ })
+ }
+}
+```
+
+```console
+# github.com/moricho/tparallel/testdata/src/sample
+testdata/src/sample/table_test.go:7:6: Test_Table1 should use t.Cleanup
+testdata/src/sample/table_test.go:7:6: Test_Table1 should call t.Parallel on the top level as well as its subtests
+testdata/src/sample/table_test.go:30:6: Test_Table2's subtests should call t.Parallel
+```