代码之家  ›  专栏  ›  技术社区  ›  Sharon Katz

如何在Golang中获取多个文件的覆盖率

  •  1
  • Sharon Katz  · 技术社区  · 7 年前

    我有一个Go-lang中的包,它有几个实现它的文件。(所有文件都在同一目录中)

    file1:mypackage.go
    包MyPackage
    func f1()
    
    文件2:mypackage\u addition.go
    包MyPackage
    功能F2()
    
    文件3:mypackage\u test.go
    包MyPackage
    导入“测试”
    func测试f1(t*testing.t){
    F1()
    }
    
    文件4:MyPackageAddition_test.go
    包MyPackage
    导入“测试”
    func测试f2(t*testing.t){
    F2()
    }
    < /代码> 
    
    

    我这样做是为了得到保险:

    mypackage>$tree
    .
    我的包裹.go
    MyPackageAddition_测试.go
    我的包条件.go
    mypackage测试
    
    0个目录,4个文件
    mypackage>$go test-v-coverprofile cover.out./…
    ===运行testf2
    ---通过:测试F2(0.00s)
    ===运行测试F1
    ---通过:测试F1(0.00s)
    通过
    覆盖率:报表的0.0%
    OK github.com/mydevelopment/mypackage 0.701S覆盖率:0.0%的语句
    mypackage>$go tool cover-html=cover.out-o cover.html
    mypackage>$open cover.html
    < /代码> 
    
    

    当我打开HTML时,我只得到f1()的覆盖范围。 F2被调用(我在调试中验证了它),并且F2的运行在文本中表示,但不在HTML文件中。

    如有任何帮助,我们将不胜感激。

    我这样做是为了得到保险:

    mypackage> $ tree
    .
    ├── mypackage.go
    ├── mypackageAddition_test.go
    ├── mypackageAdditions.go
    └── mypackage_test.go
    
    0 directories, 4 files
    mypackage> $ go test -v -coverprofile cover.out ./...
    === RUN   TestF2
    --- PASS: TestF2 (0.00s)
    === RUN   TestF1
    --- PASS: TestF1 (0.00s)
    PASS
    coverage: 0.0% of statements
    ok      github.com/MyDevelopment/mypackage  0.701s  coverage: 0.0% of statements
    mypackage> $ go tool cover -html=cover.out -o cover.html
    mypackage> $ open cover.html 
    

    enter image description here enter image description here

    当我打开HTML时,我只得到f1()的覆盖。
    调用了F2(我在调试中验证了它),并且F2的运行在文本中表示,但在HTML文件中不表示。

    感谢您的帮助。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Nick Rucci    7 年前