Az Azure Data Lake Analytics-kód tesztelése
Az Azure Data Lake biztosítja az U-SQL nyelvet. Az U-SQL a deklaratív SQL-t és az imperatív C#-t kombinálja az adatok bármilyen léptékű feldolgozásához. Ebből a dokumentumból megtudhatja, hogyan hozhat létre teszteseteket az U-SQL-hez és a kiterjesztett C# felhasználó által definiált operátori (UDO-) kódhoz.
Fontos
Az Azure Data Lake Analytics 2024. február 29-én megszűnt. További információ ezzel a bejelentéssel.
Az adatelemzéshez a szervezet használhatja a Azure Synapse Analyticset vagy a Microsoft Fabricet.
U-SQL-szkriptek tesztelése
Az U-SQL-szkript lefordítva és optimalizálva van az Azure-ban vagy a helyi számítógépen futtatható végrehajtható kódhoz. A fordítási és optimalizálási folyamat a teljes U-SQL-szkriptet egészként kezeli. Nem végezhet hagyományos egységtesztet minden utasításhoz. Az U-SQL teszt SDK és a helyi futtatásos SDK használatával azonban szkriptszintű teszteket végezhet.
Tesztesetek létrehozása U-SQL-szkripthez
Az Azure Data Lake Tools for Visual Studio lehetővé teszi U-SQL-szkripttesztelési esetek létrehozását.
Kattintson a jobb gombbal egy U-SQL-szkriptre Megoldáskezelő, majd válassza az Egységteszt létrehozása lehetőséget.
Hozzon létre egy új tesztprojektet, vagy szúrja be a tesztesetet egy meglévő tesztprojektbe.
A tesztadatforrás kezelése
Az U-SQL-szkriptek teszteléséhez tesztbemeneti fájlokra van szükség. A tesztadatok kezeléséhez a Megoldáskezelő kattintson a jobb gombbal a U-SQL-projektre, és válassza a Tulajdonságok lehetőséget. A forrást az Adatforrás tesztelése területen adhatja meg.
Amikor meghívja a felületet az Initialize()
U-SQL teszt SDK-ban, a rendszer létrehoz egy ideiglenes helyi adatgyökérmappát a tesztprojekt munkakönyvtárában. A tesztadatforrás mappájában lévő összes fájlt és mappát a rendszer az U-SQL-szkript teszteseteinek futtatása előtt az ideiglenes helyi adatgyökér mappába másolja. További tesztadatforrás-mappák hozzáadásához a tesztadatmappa elérési útját pontosvesszővel kell felosztani.
Az adatbázis-környezet kezelése teszteléshez
Ha az U-SQL-szkriptek U-SQL-adatbázisobjektumokat használnak vagy kérdeznek le, az U-SQL-tesztesetek futtatása előtt inicializálnia kell az adatbázis-környezetet. Ez a megközelítés a tárolt eljárások meghívásakor lehet szükséges. Az Initialize()
U-SQL test SDK felülete segít az U-SQL-projekt által hivatkozott összes adatbázis üzembe helyezésében a tesztprojekt munkakönyvtárában található ideiglenes helyi adatok gyökérmappájában.
További információ a U-SQL-projektek U-SQL-adatbázisprojekt-hivatkozásainak kezeléséről: Referencia egy U-SQL-adatbázisprojektre.
Teszteredmények ellenőrzése
A Run()
felület feladatvégrehajtási eredményt ad vissza.
A 0 a sikert, az 1 pedig a hibát jelenti. A kimenetek ellenőrzéséhez C# helyességi függvényeket is használhat.
Tesztesetek futtatása a Visual Studióban
Egy U-SQL-szkripttesztelési projekt egy C# egységtesztelési keretrendszerre épül. A projekt létrehozása után válassza aWindows>Test Explorertesztelése> lehetőséget. A teszteseteket a Test Explorerben futtathatja. Másik lehetőségként kattintson a jobb gombbal a .cs fájlra az egységtesztben, és válassza a Tesztek futtatása lehetőséget.
C# UDF-ek tesztelése
Tesztesetek létrehozása C#-UDO-khoz
A C#-egységtesztelési keretrendszer használatával tesztelheti a C# felhasználó által definiált operátorokat (UPO-kat). Az UDR-ek tesztelése során bemenetként elő kell készítenie a megfelelő IRowset-objektumokat .
IRowset-objektumot kétféleképpen hozhat létre:
Adatok betöltése fájlból az IRowset létrehozásához:
//Schema: "a:int, b:int" USqlColumn<int> col1 = new USqlColumn<int>("a"); USqlColumn<int> col2 = new USqlColumn<int>("b"); List<IColumn> columns = new List<IColumn> { col1, col2 }; USqlSchema schema = new USqlSchema(columns); //Generate one row with default values IUpdatableRow output = new USqlRow(schema, null).AsUpdatable(); //Get data from file IRowset rowset = UnitTestHelper.GetRowsetFromFile(@"processor.txt", schema, output.AsReadOnly(), discardAdditionalColumns: true, rowDelimiter: null, columnSeparator: '\t');
Az IRowset létrehozásához használja az adatgyűjtésből származó adatokat:
//Schema: "a:int, b:int" USqlSchema schema = new USqlSchema( new USqlColumn<int>("a"), new USqlColumn<int>("b") ); IUpdatableRow output = new USqlRow(schema, null).AsUpdatable(); //Generate Rowset with specified values List<object[]> values = new List<object[]>{ new object[2] { 2, 3 }, new object[2] { 10, 20 } }; IEnumerable<IRow> rows = UnitTestHelper.CreateRowsFromValues(schema, values); IRowset rowset = UnitTestHelper.GetRowsetFromCollection(rows, output.AsReadOnly());
Teszteredmények ellenőrzése
Az UDO-függvények meghívása után a C# helyességi függvények használatával ellenőrizheti az eredményeket a sémán és a Sorhalmaz értékének ellenőrzésén keresztül. A megoldáshoz U-SQL C# UDO egységtesztelési projektet is hozzáadhat. Ehhez válassza az Új > projekt fájlba a > Visual Studióban lehetőséget.
Tesztesetek futtatása a Visual Studióban
A projekt létrehozása után válassza aWindows>Test Explorertesztelése> lehetőséget. A teszteseteket a Test Explorerben futtathatja. Másik lehetőségként kattintson a jobb gombbal a .cs fájlra az egységtesztben, és válassza a Tesztek futtatása lehetőséget.
Tesztesetek futtatása az Azure Pipelinesban
Az U-SQL-szkripttesztelési projektek és a C# UDO-tesztprojektek is öröklik a C#-egységtesztelési projekteket. Az Azure Pipelines Visual Studio-tesztfeladata futtathatja ezeket a teszteseteket.
U-SQL-tesztesetek futtatása az Azure Pipelinesban
U-SQL-teszt esetén győződjön meg arról, hogy betölti CPPSDK
a buildelési számítógépet, majd adja meg az elérési utat a CPPSDK
következőnek USqlScriptTestRunner(cppSdkFolderFullPath: @"")
: .
Mi az a CPPSDK?
A CPPSDK a Microsoft Visual C++ 14 és Windows SDK 10.0.10240.0 csomagot tartalmazza. Ez a csomag tartalmazza az U-SQL-futtatókörnyezet által igényelt környezetet. Ezt a csomagot az Azure Data Lake Tools for Visual Studio telepítési mappájában szerezheti be:
- A Visual Studio 2015 esetében a
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Microsoft Azure Data Lake Tools for Visual Studio 2015\X.X.XXXX.X\CppSDK
- A Visual Studio 2017 esetében a
C:\Program Files (x86)\Microsoft Visual Studio\2017\<Visual Studio Edition>\SDK\ScopeCppSDK
- A Visual Studio 2019 esetében a
C:\Program Files (x86)\Microsoft Visual Studio\2019\<Visual Studio Edition>\SDK\ScopeCppSDK
A CPPSDK előkészítése az Azure Pipelines buildügynökében
A CPPSDK-függőség az Azure Pipelinesban való előkészítésének leggyakoribb módja a következő:
Tömörítse a CPPSDK-kódtárakat tartalmazó mappát.
Ellenőrizze a .zip fájlt a verziókövetési rendszerben. A .zip fájl biztosítja, hogy a CPPSDK mappában lévő összes tárat ellenőrizze, hogy a fájlok ne hagyják figyelmen kívül a
.gitignore
fájlokat.Bontsa ki a .zip fájlt a buildelési folyamatban.
Mutasson
USqlScriptTestRunner
erre a kibontott mappára a buildelési számítógépen.
C# UDO-tesztesetek futtatása az Azure Pipelinesban
C# UDO-teszt esetén mindenképpen hivatkozzon a következő szerelvényekre, amelyek az UDO-khoz szükségesek.
- Microsoft.Analytics.Interfaces
- Microsoft.Analytics.Types
- Microsoft.Analytics.UnitTest
Ha a Microsoft.Azure.DataLake.USQL.Interfaces NuGet-csomagon keresztül hivatkozik rájuk, győződjön meg arról, hogy hozzáad egy NuGet-visszaállítási feladatot a buildelési folyamathoz.