Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
PQTest Compare -komento on tehokas työkalu regressiotestaukseen, jonka avulla voit arvioida liittimen toimintoja ja komentotekstin luontia perusteellisesti. Monipuolisuuden havainnollistamiseksi seuraavat osiot tarjoavat erilaisia esimerkkejä, jotka on räätälöity eri tilanteisiin.
Important
Run-compare -komento korvaa vertailukomennon. Käytä run-compare -komentoa tulevissa Power Query -liittimien regressiotestauksissa.
Peruskyselyt
Yksinkertaisin testaustapa on lisätä tiedostoon yksi kyselylauseke .query.pq , jonka voit suorittaa vertauskomennolla . PQTest arvioi lausekkeen ja tuottaa .pqout (tulostus)tiedoston samalla nimellä. Seuraavilla ajoilla se vertaa tiedoston arvioinnista .query.pq tuotettua tulosta samannimiseen .pqout (output)-tiedostoon ja palauttaa arvioinnin tuloksen.
Esimerkki 1 – Kyselytiedoston Running Compare -komento, kun tulostetiedostoa ei ole
Seuraava esimerkki suorittaa yhden kyselytestitiedoston .query.pq määritellyn Power Query -päätteen avulla ja tuottaa vertailutiedoston.
<Path to PQTest.exe>.\PQTest.exe compare -e contoso.mez -q contoso.query.pq
[
{
"Details": "Contoso.Contents(\"TestEndpoint\")",
"EndTime": "2020-12-11T18:04:14.8991822+00:00",
"Method": "Compare.TestFiles",
"Name": "contoso.query.pq",
"StartTime": "2020-12-11T18:04:11.1532388+00:00",
"Output": [
{
"SourceFilePath": "contoso.query.pq",
"OutputFilePath": "contoso.query.pqout",
"Status": "Output File Generated",
"SerializedSource": null,
"SourceError": null,
"OutputError": null
}
],
"Status": "Passed",
"Type": "PQTest.Expression"
}
]
Esimerkki 2 – Kyselytiedoston Running Compare -komento, kun tulostetiedostoa ei ole olemassa ja FailOnMissingOutputFile-merkintä on määritetty
<Path to PQTest.exe>.\PQTest.exe compare -e contoso.mez -q contoso.query.pq -fomof
[
{
"Details": "Contoso.Contents(\"TestEndpoint\")",
"EndTime": "2020-12-11T18:04:14.8991822+00:00",
"Method": "Compare.TestFiles",
"Name": "contoso.query.pq",
"StartTime": "2020-12-11T18:04:11.1532388+00:00",
"Output": [
{
"SourceFilePath": "contoso.query.pq",
"OutputFilePath": "contoso.query.pqout",
"Status": "Missing Output File",
"SerializedSource": "Output of contoso.query.pq",
"SourceError": null,
"OutputError": null
}
],
"Status": "Failed"
"Type": "PQTest.Expression"
}
]
Esimerkki 3 – Running Compare -komento kyselytiedostolle, jossa on tulostetiedosto
Seuraava esimerkki suorittaa yksittäisen kyselytestitiedoston käyttäen määritettyä Power Query -laajennusta, vertaa sitä tulostiedostoon ja palauttaa tuloksen.
<Path to PQTest.exe>.\PQTest.exe compare -e contoso.mez -q contoso.query.pq
[
{
"Details": "Contoso.Contents(\"TestEndpoint\")",
"EndTime": "2020-12-11T18:04:14.8991822+00:00",
"Method": "Compare.TestFiles",
"Name": "contoso.query.pq",
"StartTime": "2020-12-11T18:04:11.1532388+00:00",
"Output": [
{
"SourceFilePath": "contoso.query.pq",
"OutputFilePath": "contoso.query.pqout",
"Status": "Passed",
"SerializedSource": null,
"SourceError": null,
"OutputError": null
}
],
"Status": "Passed",
"Type": "PQTest.Expression"
}
]
Testaaminen parametrikyselyllä
Parametrikysely on kysely, joka yhdistetään suorituksen aikana suoritettavaan testikyselyyn, jossa parametrikysely suoritetaan ensin. Tämän toiminnon avulla voit jakaa PQ/test-kyselytiedoston kahteen osaan: parametrikyselytiedostoon ja testikyselytiedostoon.
Agnostinen tietolähdetestaus parametrilla ja testikyselyn muodolla
Esimerkki käyttötapauksesta, jossa tästä toiminnosta olisi hyötyä, on tietolähdeagnostisen testiohjelmiston luominen. Voit käyttää parametrikyselyäsi hakeaksesi dataa lähteestä, ja testikysely on geneerinen M. Jos haluat suorittaa testit toiselle liittimelle, sinun tarvitsee vain lisätä/päivittää parametrikysely, joka osoittaa kyseiseen tietolähteeseen.
Parametrikyselyn tärkein ero on se, että testikysely noudattaa eri muotoa. Sen sijaan, että se olisi kaavalauseke, sen on oltava M-funktio, joka ottaa yhden syöteparametrin, joka edustaa parametrikyselystä palautettua taulukkoa.
Oletetaan, että sinulla on seuraava testikysely:
let
Source = Snowflake.Databases("...", "..."),
Database = Source{[Name="...",Kind="Database"]}[Data],
SelectColumns = Table.RemoveColumns(Database, { "Data" })
in
SelectColumns
Jos haluat muuntaa sen testi- ja parametrikyselyksi, sinun on jaettava ne seuraavasti:
Parametrikysely:
let
Source = Snowflake.Databases("...", "..."),
Database = Source{[Name="...",Kind="Database"]}[Data],
Schema = Database{[Name="...",Kind="Schema"]}[Data],
Taxi_Table = Schema{[Name="...",Kind="Table"]}[Data],
in
Taxi_Table
Testaa kyselyä:
(Source) => let
SelectColumns = Table.RemoveColumns(Source, { "VendorID" })
in
SelectColumns
Esimerkki 4 – Käyttämällä sekä parametrikyselyä että testikyselyä Vertaa-komennolla
<Path to PQTest.exe>.\PQTest.exe compare -e contoso.mez -q contoso.query.pq -pa contoso.parameter.pq
[
{
"Details": "(Source) => let\r\n Schemas = Table.RemoveColumns(Source, { \"Data\" })\r\nin\r\n Schemas",
"EndTime": "2020-12-11T18:04:14.8991822+00:00",
"Method": "Compare.TestFiles",
"Name": "contoso.query.pq",
"StartTime": "2020-12-11T18:04:11.1532388+00:00",
"Output": [
{
"SourceFilePath": "contoso.query.pq",
"OutputFilePath": "contoso.query.pqout",
"Status": "Passed",
"SerializedSource": null,
"SourceError": null,
"OutputError": null
}
],
"Status": "Passed",
"Type": "PQTest.Expression"
}
]
Diagnostiikan vertailu
Diagnostiikkatietoja voidaan arvioida, kun käytät vertaa-komentoa tilaamalla diagnostiikkakanavan. Kun vertailukomento suoritetaan, PQTest tuottaa .diagnostics tiedoston jokaiselle tilatulle kanavalle, jolla on tapahtuma. Seuraavilla suorituksilla se vertaa diagnostiikkatapahtumaa tiedostoonsa .diagnostics , kuten .pqout.
Esimerkki 5 – DIAGNOStiikkakanavan ODBC(Open Database Connectivity) -diagnostiikkakanavan tilaaminen kyselyn delegoinnin vahvistamiseksi lähteeseen
Seuraavassa esimerkissä näytetään, miten voit tilata ODBC-kanavan, joka sieppaa ODBC-ohjaimen luoman SQL-ohjaimen, kun kyselyn delegointia lähteeseen käytetään.
<Path to PQTest.exe>.\PQTest.exe compare -e contoso.mez -q contoso.query.pq -dc "Odbc"
ODBC-diagnostiikkakanavan avulla voidaan varmistaa, että kysely on taittuu ja että se luo oikean SQL:n.
let
Source = AzureSpark.Tables("...")
T1 = Source{[Schema="default",Item="DATABASE"]}[Data],
SelectColumns = Table.Group(T1, {}, {{"Maximum", each List.Max([number_column]), type number}}),
FirstN = Table.FirstN(SelectColumns, 1)
in
FirstN
Kysely taittuu nyt ja tuottaa tiedostoon seuraavan ODBC-komentotekstin .diagnostics :
[
{
"Command": "DESCRIBE default.DATABASE;"
},
{
"Command": "select top 1 max(`number_column`) as `C1` from `SPARK`.`default`.`DATABASE`"
}
]
Asetustiedoston käyttäminen
Mikä tahansa Compare -komennon komentorivin syöteparametri voidaan välittää myös JSON-asetustiedoston kautta. JSON-tiedostossa voi olla seuraavat asetukset:
| Asetus | Tyyppi | Kuvaus |
|---|---|---|
| ExtensionPaths | matriisi | Matriisi poluista, jotka osoittavat liitintiedostoon (mez/pqx). |
| FailOnMissingOutputFile | Bool | Vertailu ei tuota .pqout tiedostoa ja epäonnistuu, jos sitä ei ole olemassa. |
| FailOnFoldingFailure | Bool | Vertaa epäonnistuu, jos kyselyn delegointi lähteeseen -virhe annetaan. |
| ParameterQueryFilePath | merkkijono | M-lausekkeita sisältävä kyselytiedosto, joka yhdistetään suorituksen aikana testikyselytiedostoon. Yleinen käyttötapaus on, että käytössä on yksittäinen parametrikyselytiedosto, jolla määritetään M-lauseke useiden testikyselyiden tietojen noutamista varten. |
| QueryFilePath | merkkijono | Kyselytiedosto, joka sisältää M-lausekkeen (.pq) testattavaksi. |
| TrxReportPath | merkkijono | Luo (Visual Studio Test Results File) TRX tulostiedoston ja erilliset JSON-tiedostot jokaiselle testille tietyllä polulla. |
| Diagnostiset kanavat | matriisi | Diagnostiikkakanavien nimet, jotka liitetään testiajoon (esimerkiksi Odbc kyselyn taittolauseiden tallentamiseen). |
Jos käytössä on sekä komentorivin syöte- että asetusasetus, komentorivin syöte priorisoidaan.
Esimerkki 6 – Asetustiedoston käyttäminen komentoriviargumenttien sijaan
<Path to PQTest.exe>.\PQTest.exe compare -e contoso.mez -q contoso.query.pq -fomof
Komento vastaa seuraavaa komentoa:
<Path to PQTest.exe>.\PQTest.exe compare -sf settings.json
Tässä settings.json on seuraava JSON-tiedosto:
{
"ExtensionPaths": ["contoso.mez"],
"QueryFilePath": "contoso.query.pq",
"FailOnMissingOutputFile": true
}
Testaa paristot Vertaa-komennolla
Testiakku on kokoelma testejä, joissa arvioidaan koodin eri ominaisuuksia. Sijoita kyselytiedostot samaan kansioon, jotta PQTest voi helposti paikantaa ne. Määritä tietyn testitiedostonimen välittämisen sijaan kansiopolku, ja PQTest suorittaa kaikki .query.pq-testikyselytiedostot yksittäisessä läpäisyssä.
Esimerkki 7 - Testiakun suorittaminen
Oletetaan, että kansio nimeltä testi sisältää seuraavat tiedostot:
- contoso.testa.query.pq
- contoso.testb.query.pq
- contoso.testc.query.pq
Koko testiakku voidaan suorittaa seuraavalla komentorivillä:
<Path to PQTest.exe>.\PQTest.exe compare -e contoso.mez -q .\test
Testien ohittaminen testejä suoritettaessa
Testi voidaan ohittaa testejä suoritettaessa muuttamalla .query.pq-tiedoston laajennukseksi .query.pq.ignore.
Esimerkki 8 – Testin ohittaminen testejä suoritettaessa
Oletetaan, että kansio nimeltä testi sisältää seuraavat tiedostot:
- contoso.testa.query.pq
- contoso.testb.query.pq.ignore
- contoso.testc.query.pq
Contoso.testa.query.pq- ja contoso.testc.query.pq-tiedostot suoritetaan, mutta contoso.testb.query.pq.ignore ohitetaan, kun testiakun suorittamiseksi suoritetaan seuraava komento:
<Path to PQTest.exe>.\PQTest.exepqtest.exe compare -e contoso.mez -q .\test