Can You Run Tests in Subdirectories in Go?

Linda Hamilton
Release: 2024-11-26 11:25:10
Original
522 people have browsed it

Can You Run Tests in Subdirectories in Go?

Running Tests in Subdirectories in Go

Keeping your workspace organized by placing tests and examples in subdirectories is an efficient approach. This article explores the feasibility and steps required to achieve this in Go.

Testing in Subdirectories

Go allows you to run tests from subdirectories by specifying the full path using "./...":

go test ./...
Copy after login

This command will scan all subdirectories for packages and execute the tests within them. However, there are some implications to consider.

Package Access and Visibility

When placing test files in subdirectories, it's important to prefix exported variables and functions with the package name for the test file to access the exported contents. Non-exported members will not be accessible.

go test vs. go test -cover

When using go test -cover for code coverage, it's crucial to use -coverpkg=./... to collect coverage data from all packages:

go test -coverpkg=./... ./...
Copy after login

Integration Tests

Since Go 1.20, integration tests are now supported for coverage profiling. Use -cover while building the executable and GOCOVERDIR to specify the location for coverage data:

go build -cover -o myprogram.exe myprogram.go
mkdir somedata
GOCOVERDIR=somedata ./myprogram.exe
Copy after login

Alternate Approach

You can also separate tests into a different package without placing them in a subdirectory. For example, tests for package "foo" can reside in package "foo_test" within the same directory, ensuring access to only the exported members of "foo."

Conclusion

While running tests from subdirectories is technically possible, it may not be the best practice for organization and accessibility. The alternative approach of creating a separate test package within the same directory is a viable option for managing tests more efficiently.

The above is the detailed content of Can You Run Tests in Subdirectories in Go?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template