标签: go1.14

什么对 t.Cleanup 有用?

问题

我想知道t.CleanupGo1.14中引入的用例。与使用 defer 相比,t.Cleanup 有什么方便之处?

https://golang.org/pkg/testing/#T.Cleanup

  • 样本

例如,假设我们创建了一个临时目录,当我们测试它时,我们想删除我们创建的临时目录。

t.Cleanup可用于编写如下测试,但它也可用作defer os.RemoveAll(tempDir).

package mypkg

import (
    "io/ioutil"
    "os"
    "testing"
)

func TestDirwalk(t *testing.T) {
    tempDir, err := ioutil.TempDir(".", "temp")
    if err != nil {
        t.Errorf("create tempDir: %v", err)
    }
    t.Cleanup(func() { os.RemoveAll(tempDir) })

    // something...
}
Run Code Online (Sandbox Code Playgroud)

testing unit-testing go go1.14

9
推荐指数
3
解决办法
2530
查看次数

OpenTelemetry 缺少软件包

我的 Go 项目中出现以下错误。我用来go mod管理依赖关系。看起来最新版本opentelemetry没有特定的软件包。但我应该如何修复它们

go get ./...                           
go: finding module for package go.opentelemetry.io/otel/internal/opentelemetry-proto-gen/collector/trace/v1
go: finding module for package go.opentelemetry.io/otel/internal/opentelemetry-proto-gen/collector/metrics/v1
go: finding module for package go.opentelemetry.io/otel/api/label
go: finding module for package go.opentelemetry.io/otel/api/standard
go: finding module for package go.opentelemetry.io/otel/instrumentation/othttp
go: finding module for package go.opentelemetry.io/otel/api/kv
go: finding module for package go.opentelemetry.io/otel/internal/opentelemetry-proto-gen/trace/v1
go: finding module for package go.opentelemetry.io/otel/internal/opentelemetry-proto-gen/common/v1
go: finding module for package go.opentelemetry.io/otel/internal/opentelemetry-proto-gen/resource/v1
go: finding module for package go.opentelemetry.io/otel/internal/opentelemetry-proto-gen/metrics/v1
go: finding module for package go.opentelemetry.io/otel/internal/opentelemetry-proto-gen/collector/trace/v1
go: finding module …
Run Code Online (Sandbox Code Playgroud)

go go1.14 open-telemetry

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

go ×2

go1.14 ×2

open-telemetry ×1

testing ×1

unit-testing ×1