Home > Backend Development > Golang > Why Is My Go Code Coverage Showing 0% Despite Successful Test Execution in Separate Folders?

Why Is My Go Code Coverage Showing 0% Despite Successful Test Execution in Separate Folders?

Patricia Arquette
Release: 2024-11-28 10:59:11
Original
773 people have browsed it

Why Is My Go Code Coverage Showing 0% Despite Successful Test Execution in Separate Folders?

Resolving Code Coverage Discrepancy in Separate Folders for GO Projects

While working on a project with a particular structure, where packages and their tests were located in separate folders, you encountered an issue. Despite the execution of code in stuff.go from stuff_test.go, the coverage report displayed 0.0%.

Possible Cause and Solution

The issue arises due to GO's default coverage analysis behavior, which only applies to the package being tested. To overcome this, the -coverpkg flag can be utilized to specify the packages for which coverage data should be collected.

By using the -coverpkg option, you can specify that tests in test/stuff/stuff_test.go should also consider code coverage for stuff/stuff.go. This ensures that the coverage analysis encompasses all relevant packages.

Here's an example command that demonstrates the usage of -coverpkg:

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

This command runs tests in packages matching the test path and includes coverage information for all packages matching ./....

Viewing the Coverage Report

Once the tests have executed, you can generate and view the coverage report using the following commands:

go tool cover -html=cover.out
Copy after login

This command generates an HTML coverage report named cover.out, which can be opened in a web browser to visualize the coverage data.

The above is the detailed content of Why Is My Go Code Coverage Showing 0% Despite Successful Test Execution in Separate Folders?. 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