Megosztás a következőn keresztül:


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.

  1. Kattintson a jobb gombbal egy U-SQL-szkriptre Megoldáskezelő, majd válassza az Egységteszt létrehozása lehetőséget.

  2. Hozzon létre egy új tesztprojektet, vagy szúrja be a tesztesetet egy meglévő tesztprojektbe.

    Data Lake Tools for Visual Studio – U-SQL tesztprojekt-konfiguráció létrehozása

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.

Data Lake Tools for Visual Studio – projektteszt adatforrásának konfigurálása

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ő:

  1. Tömörítse a CPPSDK-kódtárakat tartalmazó mappát.

  2. 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.

  3. Bontsa ki a .zip fájlt a buildelési folyamatban.

  4. 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.

Következő lépések