Dia duit gach duine. Inniu roinnimid an chuid dheireanach den alt leat.
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
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_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. 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
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
Má úsáideann tú GitHub, ansin cuireann Pulumi
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 -
→
Foinse: will.com