Bonneagar a Thástáil mar Chód le Pulumi. Cuid 2

Dia duit gach duine. Inniu roinnimid an chuid dheireanach den alt leat. "Bonneagar a Thástáil mar Chód le Pulumi", ar ullmhaíodh an t-aistriúchán go sonrach do mhic léinn an chúrsa "Cleachtais agus uirlisí DevOps".

Bonneagar a Thástáil mar Chód le Pulumi. Cuid 2

Tástáil imscaradh

Is cur chuige cumhachtach é an stíl tástála seo agus ligeann sé dúinn tástáil bosca bán a dhéanamh chun oibriú inmheánach ár gcód bonneagair a thástáil. Mar sin féin, cuireann sé teorainn éigin leis an méid is féidir linn a thástáil. Déantar na tástálacha bunaithe ar an bplean imscartha cuimhne a chruthaigh Pulumi roimh an imscaradh iarbhír agus dá bhrí sin ní féidir an t-imscaradh féin a thástáil. I gcásanna den sórt sin, tá creat tástála comhtháthaithe ag Pulumi. Agus oibríonn an dá chur chuige seo go hiontach le chéile!

Tá creat tástála comhtháthú Pulumi scríofa in Go, agus is é sin an chaoi a ndéanaimid tástáil ar an gcuid is mó dár gcód inmheánach. Cé go raibh an cur chuige tástála aonaid a pléadh roimhe seo níos mó cosúil le tástáil bosca bán, is bosca dubh é tástáil chomhtháthaithe. (Tá roghanna ann freisin maidir le dianthástáil inmheánach.) Cruthaíodh an creat seo chun clár Pulumi iomlán a dhéanamh agus oibríochtaí saolré éagsúla a dhéanamh air, mar shampla cruach nua a imscaradh ón tús, é a nuashonrú le héagsúlachtaí, agus é a scriosadh, b'fhéidir go leor uaireanta. . Ritheann muid iad go rialta (mar shampla, san oíche) agus mar thástálacha struis.

(Táimid táimid ag obair air, ionas go mbeidh cumais tástála comhtháthaithe comhchosúla ar fáil i SDK dúchais na dteangacha. Is féidir leat an creat tástála comhtháthú Go a úsáid beag beann ar an teanga ina bhfuil do chlár Pulumi scríofa).

Tríd an gclár a rith leis an gcreat seo is féidir leat na rudaí seo a leanas a sheiceáil:

  • Tá do chód tionscadail ceart go comhréir agus ritheann sé gan earráidí.
  • Oibríonn na socruithe cumraíochta stack agus rúin agus déantar iad a léirmhíniú i gceart.
  • Is féidir do thionscadal a imscaradh go rathúil sa néalsholáthraí de do rogha féin.
  • Is féidir do thionscadal a uasghrádú go rathúil ón stát tosaigh go dtí N stát eile.
  • Is féidir do thionscadal a scrios go rathúil agus a bhaint de do sholáthraí néil.

Mar a fheicfimid go luath, is féidir an creat seo a úsáid freisin chun bailíochtú ama rite a dhéanamh.

Tástáil comhtháthú simplí

Chun é seo a fheiceáil i ngníomh, féachfaimid ar an stór pulumi/examples, toisc go n-úsáideann ár bhfoireann agus pobal Pulumi é chun ár n-iarrataí tarraingt féin, tiomantas, agus tógáil oíche a thástáil.

Anseo thíos tá tástáil shimplithe ar ár sampla a sholáthraíonn buicéad S3 agus roinnt rudaí eile:

sampla_test.go:

package test
 
import (
    "os"
    "path"
    "testing"
 
    "github.com/pulumi/pulumi/pkg/testing/integration"
)
 
func TestExamples(t *testing.T) {
    awsRegion := os.Getenv("AWS_REGION")
    if awsRegion == "" {
        awsRegion = "us-west-1"
    }
    cwd, _ := os.Getwd()
    integration.ProgramTest(t, &integration.ProgramTestOptions{
        Quick:       true,
        SkipRefresh: true,
        Dir:         path.Join(cwd, "..", "..", "aws-js-s3-folder"),
        Config: map[string]string{
            "aws:region": awsRegion,
        },
    })
}

Téann an tástáil seo tríd an saolré bunúsach a bhaineann le cruach fillteán a chruthú, a mhodhnú agus a scriosadh aws-js-s3-folder. Tógfaidh sé tuairim is nóiméad chun tástáil a ritheadh ​​a thuairisciú:

$ go test .
PASS
ok      ... 43.993s

Tá go leor roghanna ann chun iompar na dtástálacha seo a shaincheapadh. Féach ar liosta iomlán na roghanna. sa struchtúr ProgramTestOptions. Mar shampla, is féidir leat críochphointe Jaeger a chumrú chun (Tracing), cuir in iúl go bhfuil tú ag súil go dteipfidh ar an tástáil má tá an tástáil diúltach (ExpectFailure), sraith “athruithe” a chur i bhfeidhm ar an gclár le haghaidh aistriú seicheamhach stáit (EditDirs) agus i bhfad níos mó. Feicfimid conas iad a úsáid chun úsáid d'iarratas a thástáil.

Ag seiceáil airíonna acmhainne

Cinntíonn an comhtháthú a pléadh thuas go “oibríonn” ár gclár - ní thuairteann sé. Ach cad a tharlóidh má theastaíonn uainn airíonna an chruach mar thoradh air a sheiceáil? Mar shampla, go bhfuil (nó nár cuireadh) cineálacha áirithe acmhainní ar fáil agus go bhfuil tréithe áirithe acu.

Paraiméadar ExtraRuntimeValidation le haghaidh ProgramTestOptions ligeann dúinn breathnú ar an staid iar-imscartha arna thaifeadadh ag Pulumi ionas gur féidir linn seiceálacha breise a dhéanamh. Áirítear leis seo léargas iomlán ar staid an chruach a tháinig as, lena n-áirítear cumraíocht, luachanna aschuir easpórtála, na hacmhainní go léir agus a luachanna maoine, agus gach spleáchas idir acmhainní.

Chun sampla bunúsach de seo a fheiceáil, déanaimis seiceáil go gcruthaíonn ár gclár ceann Buicéad S3:

  integration.ProgramTest(t, &integration.ProgramTestOptions{
        // as before...
        ExtraRuntimeValidation: func(t *testing.T, stack integration.RuntimeValidationStackInfo) {
            var foundBuckets int
            for _, res := range stack.Deployment.Resources {
                if res.Type == "aws:s3/bucket:Bucket" {
                    foundBuckets++
                }
            }
            assert.Equal(t, 1, foundBuckets, "Expected to find a single AWS S3 Bucket")
        },
    })

Anois, nuair a ritheann muid dul tástála, ní hamháin go rachaidh sé trí cheallraí de thástálacha saolré, ach freisin, tar éis an stack a imscaradh go rathúil, déanfaidh sé seiceáil breise ar an staid mar thoradh air.

Tástálacha ama rite

Go dtí seo, bhain gach tástáil le hiompar imlonnaithe agus le samhail acmhainní Pulumi. Cad a tharlóidh má theastaíonn uait a fhíorú go n-oibríonn do bhonneagar soláthair i ndáiríre? Mar shampla, go bhfuil an meaisín fíorúil ag rith, go bhfuil an buicéad S3 cad a bhfuil súil againn, agus mar sin de.

B’fhéidir go ndearna tú buille faoi thuairim cheana féin conas é seo a dhéanamh: rogha ExtraRuntimeValidation le haghaidh ProgramTestOptions - is deis iontach é seo. Ag an bpointe seo, reáchtálann tú tástáil Go saincheaptha le rochtain ar staid iomlán acmhainní do chláir. Áiríonn an stát seo faisnéis ar nós seoltaí IP meaisíní fíorúla, URLanna, agus gach rud is gá chun idirghníomhú i ndáiríre leis na feidhmchláir scamall agus an bonneagar mar thoradh air.

Mar shampla, onnmhairíonn ár gclár tástála an mhaoin webEndpoint buicéad ar a dtugtar websiteUrl, a bhfuil an URL iomlán nuair is féidir linn a fháil ar an cumraithe index document. Cé gur féidir linn tochailt isteach sa stát comhad a fháil bucket agus léigh an mhaoin sin go díreach, ach i go leor cásanna easpórtálann ár stoic airíonna úsáideacha mar seo atá áisiúil dúinn a úsáid le haghaidh seiceáil:

integration.ProgramTest(t, &integration.ProgramTestOptions{
            // as before ...
        ExtraRuntimeValidation: func(t *testing.T, stack integration.RuntimeValidationStackInfo) {
            url := "http://" + stack.Outputs["websiteUrl"].(string)
            resp, err := http.Get(url)
            if !assert.NoError(t, err) {
                return
            }
            if !assert.Equal(t, 200, resp.StatusCode) {
                return
            }
            defer resp.Body.Close()
            body, err := ioutil.ReadAll(resp.Body)
            if !assert.NoError(t, err) {
                return
            }
            assert.Contains(t, string(body), "Hello, Pulumi!")
        },
    })

Cosúil lenár seiceálacha ama rite roimhe seo, déanfar an seiceáil seo díreach tar éis an chairn a ardú, go léir mar fhreagra ar ghlao simplí go test. Agus sin díreach barr an chnoic oighir - tá gach gné tástála Go is féidir leat a scríobh i gcód ar fáil.

Comhtháthú Bonneagair Leanúnach

Is maith a bheith in ann tástálacha a reáchtáil ar ríomhaire glúine nuair a bhíonn go leor athruithe bonneagair á ndéanamh chun iad a thástáil sula gcuirtear isteach iad le haghaidh athbhreithniú cód. Ach déanaimid agus go leor dár gcliaint an bonneagar a thástáil ag céimeanna éagsúla den saolré forbartha:

  • I ngach iarratas tarraingt oscailte le haghaidh tástála roimh chumasc.
  • Mar fhreagra ar gach gealltanas, seiceáil faoi dhó go ndearnadh an cumasc i gceart.
  • Go tréimhsiúil, mar shampla san oíche nó go seachtainiúil le haghaidh tástála breise.
  • Mar chuid de thástáil feidhmíochta nó struis, a ritheann go hiondúil thar thréimhse fhada ama agus a reáchtálann tástálacha go comhthreomhar agus/nó a imlonnaítear an clár céanna go minic.

I gcás gach ceann díobh seo, tacaíonn Pulumi le comhtháthú leis an gcóras comhtháthú leanúnach is fearr leat. Le comhtháthú leanúnach, tugann sé seo an clúdach tástála céanna duit do do bhonneagar agus do bhogearraí d'fheidhmchláir.

Tá tacaíocht ag Pulumi do chórais CI coitianta. Seo cuid acu:

Le haghaidh faisnéise níos mionsonraithe, féach le do thoil ar an doiciméadú le haghaidh Seachadadh Leanúnach.

Timpeallachtaí Sealadacha

Deis an-chumhachtach a thagann chun cinn is ea an cumas timpeallachtaí gearrshaolacha a úsáid chun críocha tástála glactha amháin. Coincheap tionscadail agus stoic Tá Pulumi deartha chun imscaradh agus cuimilt a dhéanamh go héasca ar thimpeallachtaí go hiomlán iargúlta agus neamhspleách, go léir i gcúpla ordú CLI simplí nó trí úsáid a bhaint as creat tástála comhtháthaithe.

Má úsáideann tú GitHub, ansin cuireann Pulumi Aip GitHub, a chabhróidh leat tástáil glactha a nascadh chun iarratais a tharraingt laistigh de do phíblíne CI. Suiteáil an feidhmchlár i stór GitHub, agus cuirfidh Pulumi faisnéis faoi réamhamhairc bonneagair, nuashonruithe agus torthaí tástála le d'iarratais CI agus linn:

Bonneagar a Thástáil mar Chód le Pulumi. Cuid 2

Nuair a úsáideann tú Pulumi le haghaidh do chroíthástálacha glactha, gheobhaidh tú cumais uathoibrithe nua a fheabhsóidh táirgiúlacht na foirne agus a thabharfaidh muinín duit i gcáilíocht d’athruithe.

Iomlán na

San Airteagal seo, tá sé feicthe againn trí úsáid a bhaint as teangacha ríomhchláraithe ginearálta, go gcuirtear go leor teicnící forbartha bogearraí ar fáil dúinn a bhí úsáideach chun ár bhfeidhmchláir a fhorbairt. Áirítear leo tástáil aonaid, tástáil chomhtháthaithe, agus an chaoi a n-oibríonn siad le chéile chun tástáil fhairsing ama rite a dhéanamh. Is furasta tástálacha a rith ar éileamh nó i do chóras CI.

Pulumi - bogearraí foinse oscailte, saor in aisce le húsáid agus oibríonn sé leis na teangacha ríomhchlárúcháin agus na scamaill is fearr leat - bain triail as inniu!

An chéad chuid

Foinse: will.com

Add a comment