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.
Klikněte pravým tlačítkem na skript U-SQL v Průzkumník řešení a pak vyberte Vytvořit test jednotek.
Vytvořte nový projekt testů nebo vložte testovací případ do existujícího projektu testů.
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.
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í:
Zazipujte složku, která obsahuje knihovny CPPSDK.
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
.Rozbalte soubor .zip v kanálu buildu.
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.