如何在我的项目中“测试”所有测试?

时间:2013-05-03 06:33:28

标签: testing go

go test命令仅涵盖一个目录中的*_test.go个文件。

我想go test整个项目,这意味着测试应该涵盖目录*_test.go中的所有./文件以及目录./下的每个chindren树目录。

执行此操作的命令是什么?

3 个答案:

答案 0 :(得分:200)

这应该在当前目录及其所有子目录中运行所有测试:

$ go test ./...

这应该使用前缀为foo/的导入路径运行所有测试:

$ go test foo/...

这应该运行前缀为foo的所有测试导入路径:

$ go test foo...

这应该在$ GOPATH中运行所有测试:

$ go test ...

答案 1 :(得分:44)

From Go 1.9 onwards,请使用

declare module ExtLib {
   interface ISMTH {
      prop1: string;
      prop2: number;
   }
}

在Go 1.6到1.8中,go test ./... 也匹配vendor directory。要跳过已售出的包裹,您可以使用

./...

来源:https://github.com/golang/go/issues/11659https://github.com/golang/go/issues/14417https://github.com/go-lang-plugin-org/go-lang-idea-plugin/issues/2366,@ nickgrim的评论。

答案 2 :(得分:5)

  

文件夹结构

ProjectName/folderName1/file_test.go
ProjectName/folderName2/file1_test.go
ProjectName/folderName3/file2_test.go
  

go test命令命令

   ProjectName$ go test -v ./...
    ProjectName$ go test  ./...
    ProjectName$ go test -cover ./...
  

整个项目的覆盖率报告

ok      ProjectName/folderName1 10%
ok      ProjectName/folerName2  90%
ok      ProjectName/folerName2  85%