Testování kódu azure Data Lake Analytics

Azure Data Lake poskytuje jazyk U-SQL . U-SQL kombinuje deklarativní SQL s imperativním jazykem C# pro zpracování dat v libovolném měřítku. V tomto dokumentu se dozvíte, jak vytvořit testovací případy pro kód U-SQL a rozšířeného operátoru (UDO) jazyka C#.

Důležité

Azure Data Lake Analytics vyřazena 29. února 2024. Další informace najdete v tomto oznámení.

K analýze dat může vaše organizace použít Azure Synapse Analytics nebo Microsoft Fabric.

Testování skriptů U-SQL

Skript U-SQL je zkompilovaný a optimalizovaný pro spuštění spustitelného kódu v Azure nebo na místním počítači. Proces kompilace a optimalizace zpracovává celý skript U-SQL jako celek. Tradiční test jednotek není možné provést pro každý příkaz. Pomocí testovací sady SDK U-SQL a místně spuštěné sady SDK však můžete provádět testy na úrovni skriptu.

Vytvoření testovacích případů pro skript U-SQL

Nástroje Azure Data Lake pro Visual Studio umožňuje vytvářet testovací případy skriptů U-SQL.

  1. Klikněte pravým tlačítkem na skript U-SQL v Průzkumník řešení a pak vyberte Vytvořit test jednotek.

  2. Vytvořte nový projekt testů nebo vložte testovací případ do existujícího projektu testů.

    Data Lake Tools for Visual Studio – vytvoření konfigurace projektu testu U-SQL

Správa testovacího zdroje dat

Při testování skriptů U-SQL potřebujete vstupní testovací soubory. Pokud chcete spravovat testovací data, klikněte v Průzkumník řešení pravým tlačítkem na projekt U-SQL a vyberte Vlastnosti. Zdroj můžete zadat do pole Test zdroje dat.

Data Lake Tools for Visual Studio – konfigurace testovacího zdroje dat projektu

Při volání Initialize() rozhraní v testovací sadě SDK U-SQL se v pracovním adresáři testovacího projektu vytvoří dočasná složka místního kořenového adresáře dat. Všechny soubory a složky ve složce testovacího zdroje dat se před spuštěním testovacích případů skriptu U-SQL zkopírují do dočasné složky místního kořenového adresáře dat. Další složky se zdroji testovacích dat můžete přidat rozdělením cesty ke složce testovacích dat středníkem.

Správa databázového prostředí pro testování

Pokud vaše skripty U-SQL používají nebo dotazují databázové objekty U-SQL, musíte před spuštěním testovacích případů U-SQL inicializovat prostředí databáze. Tento přístup může být nutný při volání uložených procedur. Rozhraní Initialize() v testovací sadě SDK U-SQL vám pomůže nasadit všechny databáze, na které projekt U-SQL odkazuje, do dočasné místní kořenové složky dat v pracovním adresáři projektu testu.

Další informace o správě odkazů na projekt databáze U-SQL pro projekt U-SQL najdete v tématu Odkazování na projekt databáze U-SQL.

Ověření výsledků testu

Rozhraní Run() vrátí výsledek spuštění úlohy. 0 znamená úspěch a 1 znamená neúspěch. K ověření výstupů můžete použít také kontrolní funkce jazyka C#.

Spuštění testovacích případů v sadě Visual Studio

Testovací projekt skriptu U-SQL je založený na architektuře testování jednotek jazyka C#. Po sestavení projektu vyberte Test Windows>>Test Explorer. Testovací případy můžete spouštět z Průzkumníka testů. Případně klikněte pravým tlačítkem na soubor .cs v testu jednotek a vyberte Spustit testy.

Testování UDO jazyka C#

Vytvoření testovacích případů pro trasy definované uživatelem jazyka C#

K testování uživatelem definovaných operátorů (UPO) jazyka C# můžete použít architekturu pro testování jednotek jazyka C#. Při testování objektů definovaných uživatelem musíte připravit odpovídající objekty IRowset jako vstupy.

Existují dva způsoby, jak vytvořit objekt IRowset :

  • Načtení dat ze souboru pro vytvoření IRowset:

    //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');
    
  • Použití dat ze kolekce dat k vytvoření IRowset:

    //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());
    

Ověření výsledků testu

Po volání funkcí UDO můžete ověřit výsledky prostřednictvím ověření hodnoty schématu a sady řádků pomocí kontrolních funkcí jazyka C#. Do řešení můžete přidat projekt testování jednotek U-SQL v C# . Uděláte to tak, že v sadě Visual Studio vyberete Soubor > nový > projekt .

Spuštění testovacích případů v sadě Visual Studio

Po sestavení projektu vyberte Test Windows>>Test Explorer. Testovací případy můžete spouštět z Průzkumníka testů. Případně klikněte pravým tlačítkem na soubor .cs v testu jednotek a vyberte Spustit testy.

Spouštění testovacích případů v Azure Pipelines

Projekty testů skriptů U-SQL i projekty testů UDO jazyka C# dědí projekty testů jednotek v jazyce C#. Tyto testovací případy může spustit úloha testování sady Visual Studio v Azure Pipelines.

Spouštění testovacích případů U-SQL v Azure Pipelines

V případě testu U-SQL se ujistěte, že jste nastavili CPPSDK sestavovací počítač, a pak předejte CPPSDK cestu k USqlScriptTestRunner(cppSdkFolderFullPath: @"").

Co je CPPSDK?

CPPSDK je balíček, který obsahuje Microsoft Visual C++ 14 a Windows SDK 10.0.10240.0. Tento balíček obsahuje prostředí, které potřebuje modul runtime U-SQL. Tento balíček můžete získat do instalační složky Nástroje Azure Data Lake pro Visual Studio:

  • Pro Visual Studio 2015 je v části 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
  • V případě sady Visual Studio 2017 je v části C:\Program Files (x86)\Microsoft Visual Studio\2017\<Visual Studio Edition>\SDK\ScopeCppSDK
  • V případě sady Visual Studio 2019 je v části C:\Program Files (x86)\Microsoft Visual Studio\2019\<Visual Studio Edition>\SDK\ScopeCppSDK

Příprava sady CPPSDK v agentu sestavení Azure Pipelines

Nejběžnější způsob přípravy závislosti CPPSDK v Azure Pipelines je následující:

  1. Zazipujte složku, která obsahuje knihovny CPPSDK.

  2. Vrátit soubor .zip se změnami do systému správy zdrojového kódu. Soubor .zip zajistí, že všechny knihovny ve složce CPPSDK se změnami, aby se soubory kvůli souboru neignorovaly .gitignore .

  3. Rozbalte soubor .zip v kanálu buildu.

  4. Přejděte USqlScriptTestRunner na tuto rozbalenou složku na počítači sestavení.

Spuštění testovacích případů UDO jazyka C# v Azure Pipelines

V případě testu UDO jazyka C# nezapomeňte odkazovat na následující sestavení, která jsou potřebná pro UDO.

  • Microsoft.Analytics.Interfaces
  • Microsoft.Analytics.Types
  • Microsoft.Analytics.UnitTest

Pokud na ně odkazujete prostřednictvím balíčku NuGet Microsoft.Azure.DataLake.USQL.Interfaces, nezapomeňte do kanálu buildu přidat úlohu Obnovení NuGet.

Další kroky