如何在Go中为多个包运行测试(覆盖率)?

huangapple go评论81阅读模式
英文:

How to run tests (coverage) for multiple packages in Go?

问题

项目结构:

-MakeFile
-DockerFileForLogging
-DockerFileForMonitor
-Logging
   -go文件
   -go.mod 
-Monitor
   -go文件
   -go.mod

当我尝试在这个项目上生成和运行测试时,我得到了"Main module does not contain package /*/**/.../Logging"的错误。

命令:

go test -race -coverprofile=coverage.out ./logging/...
go test -race -coverprofile=coverage.out ./monitor/...

我尝试了多个命令,但是一直得到不同的错误。

英文:

Project Structure:

-MakeFile
-DockerFileForLogging
-DockerFileForMonitor
-Logging
   -go files
   -go.mod 
-Monitor
   -go files
   -go.mod

When I try to generate and run test on this project, I get Main module does not contain package /*/**/.../Logging.

Command :

    go test -race -coverprofile=coverage.out ./logging/...
	go test -race -coverprofile=coverage.out ./monitor/...

Tried multiple commands but I keep getting different errors.

答案1

得分: 1

我相信正确的写法应该是使用*而不是...

例如:

go test -race -coverprofile=coverage.out ./logging/*
go test -race -coverprofile=coverage.out ./monitor/*

你可以在这份文档中获取更多细节以更好地理解。

https://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm

英文:

Instead of using ..., I believe the correct one would be *

Like the example:

go test -race -coverprofile=coverage.out ./logging/*
go test -race -coverprofile=coverage.out ./monitor/*

In this documentation you can get some details to understand better.

https://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm

huangapple
  • 本文由 发表于 2022年1月10日 16:11:00
  • 转载请务必保留本文链接:https://go.coder-hub.com/70649430.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定