Home  >  Article  >  Backend Development  >  go test -run: how to specify package in test identifier

go test -run: how to specify package in test identifier

WBOY
WBOYforward
2024-02-09 12:50:19622browse

go test -run:如何在测试标识符中指定包

php editor Xinyi will introduce you in detail how to specify the package in the test identifier. In Go language, we can use the "go test -run" command to run specified test cases. By default, this command will run all test cases in the current directory. However, sometimes we only want to run a specific test package or test function, in which case we need to specify it using the "-run" identifier. For example, we can use "go test -run PackageName" to run only the specified test package, or use "go test -run TestFunctionName" to run only the specified test function. In this way, we can run the test cases we need more flexibly and improve testing efficiency.

Question content

Suppose I have two packages foo/bar and foo/baz. Both foo/bar and foo/baz have a TestFoo, but I only want to run foo/bar's TestFoo. Additionally, foo/baz has a TestBaz that I want to run.

Is it possible to specify the go test command to run only foo/bar::TestFoo and foo/baz::TestBaz?

I tried using go test -run to achieve this, but it looks like running the regex only filters by name, not by package identifier:

go test - run "TestFoo|TestBaz" foo/bar foo/baz

Ideally, I'd like to do something like this:

go test - run "foo/bar/TestFoo|foo/baz/TestBaz" foo/bar foo/baz.

Solution

Is it possible to specify a go test command that only runs foo/bar::TestFoo and foo/baz::TestBaz?

No, this is impossible.

(Packages should generally be self-contained, and testing a selected test from multiple tests is not a common use case at all. Testing multiple or all packages via go test is good enough. /...)

The above is the detailed content of go test -run: how to specify package in test identifier. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:stackoverflow.com. If there is any infringement, please contact admin@php.cn delete