kubernetes 控制器的单元测试

我正在尝试编写一个控制器,但在编写测试时遇到了一些问题。

我在我的控制器中使用了一些来自 k8s HPA 的代码,在使用testrestmapper.

基本上,在使用断点运行测试时,我看到返回了映射。

当我这样做时,不会返回映射。

这里发生了什么魔法?

以下测试失败

package main


import (

    "github.com/stretchr/testify/assert"

    "k8s.io/apimachinery/pkg/api/meta/testrestmapper"

    "k8s.io/apimachinery/pkg/runtime/schema"

    "k8s.io/kubernetes/pkg/api/legacyscheme"

    "testing"

)


func TestT(t *testing.T) {

    mapper := testrestmapper.TestOnlyStaticRESTMapper(legacyscheme.Scheme)


    gk := schema.FromAPIVersionAndKind("apps/v1", "Deployment").GroupKind()

    mapping, err := mapper.RESTMapping(gk)


    assert.NoError(t, err)

    assert.NotNil(t, mapping)

}


呼唤远方
浏览 172回答 1
1回答

慕码人8056858

我认为这是因为您缺少_ "k8s.io/kubernetes/pkg/apis/apps/install".如果不导入此路径,则没有向schema您用于获取 REST 映射的 API 组或版本注册。通过导入路径,将注册 API 组,允许调用schema.FromAPIVersionAndKind("apps/v1", "Deployment").GroupKind()返回有效的 GroupKind。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go