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 uživatelem definovaného operátoru (UDO) jazyka C#.
Testování skriptů U-SQL
Skript U-SQL je zkompilován a optimalizován 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. Pro každý příkaz nelze provést tradiční test jednotek. Pomocí sady testů U-SQL test SDK a místního běhu sady SDK ale můžete provádět testy na úrovni skriptů.
Vytvoření testovacích případů pro skript U-SQL
Nástroje Azure Data Lake pro Visual Studio umožňuje vytvořit testovací případy skriptu U-SQL.
V Průzkumník řešení klikněte pravým tlačítkem na skript U-SQL a pak vyberte vytvořit test jednotek.
Vytvořte nový testovací projekt nebo vložte testovací případ do existujícího testovacího projektu.

Správa zdroje testovacích dat
Když testujete skripty U-SQL, budete potřebovat testovací vstupní soubory. Chcete-li spravovat testovací data, v Průzkumník řešení klikněte pravým tlačítkem na projekt U-SQL a vyberte vlastnosti. Do zdroje testovacích dat můžete zadat zdroj.

Při volání Initialize() rozhraní v sadě SDK testu U-SQL se vytvoří dočasná kořenová složka místních dat v pracovním adresáři testovacího projektu. Všechny soubory a složky ve složce zdroje testovacích dat se zkopírují do dočasné kořenové složky místních dat před spuštěním testovacích případů skriptu U-SQL. Můžete přidat další zdroje testovacích dat tak, že rozdělujete cestu 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 se dotazují s objekty databáze U-SQL, je nutné 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. Initialize()Rozhraní v sadě SDK testu u-SQL vám pomůže nasadit všechny databáze, na které se odkazuje v projektu u-SQL, do dočasné místní složky místních dat v pracovním adresáři testovacího projektu.
Další informace o tom, jak spravovat odkazy na projekt U-SQL Database pro projekt U-SQL, najdete v tématu Referenční dokumentace k databázovému projektu u-SQL.
Ověřit výsledky testu
Run()Rozhraní vrátí výsledek provedení úlohy. 0 znamená úspěch a 1 znamená selhání. K ověření výstupů můžete použít také funkce kontrolního výrazu jazyka C#.
Spuštění testovacích případů v aplikaci Visual Studio
Projekt testů skriptu U-SQL je postaven nad rámec testovacího rozhraní jednotek jazyka C#. Po sestavení projektu vyberte test > Windows > Test Explorer. Testovací případy lze spustit z Průzkumníka testů. Případně klikněte pravým tlačítkem myši na soubor. cs v testu jednotek a vyberte Spustit testy.
Test C# Udo
Vytvoření testovacích případů pro C# Udo
K otestování uživatelem definovaných operátorů jazyka C# (Udo) můžete použít rozhraní pro testování částí v jazyce C#. Při testování Udo je třeba 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');K vytvoření IRowset použijte data z kolekce dat:
//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ěřit výsledky testu
Po volání funkcí UDO můžete ověřit výsledky prostřednictvím schématu a ověření hodnoty sady řádků pomocí funkcí kontrolního výrazu jazyka C#. Do svého řešení můžete přidat projekt testu jednotek U-SQL C# Udo . Provedete to tak, že vyberete soubor > nový > projekt v aplikaci Visual Studio.
Spuštění testovacích případů v aplikaci Visual Studio
Po sestavení projektu vyberte test > Windows > Test Explorer. Testovací případy lze spustit z Průzkumníka testů. Případně klikněte pravým tlačítkem myši na soubor. cs v testu jednotek a vyberte Spustit testy.
Spuštění testovacích případů v Azure Pipelines
Projekty testů skriptu U-SQL a projekty Udo v jazyce c# dědí projekty testování částí v jazyce c#. Úkol testu sady Visual Studio v Azure Pipelines může spustit tyto testovací případy.
Spuštění testovacích případů U-SQL v Azure Pipelines
U testu U-SQL Zajistěte, aby se načetly do CPPSDK počítače sestavení, 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 zahrnuje prostředí, které je potřeba pro modul runtime U-SQL. Tento balíček můžete získat v instalační složce Nástroje Azure Data Lake pro Visual Studio:
- V případě sady Visual Studio 2015 je
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
C:\Program Files (x86)\Microsoft Visual Studio\2017\<Visual Studio Edition>\SDK\ScopeCppSDK - V případě sady Visual Studio 2019 je
C:\Program Files (x86)\Microsoft Visual Studio\2019\<Visual Studio Edition>\SDK\ScopeCppSDK
Příprava CPPSDK v agentovi sestavení Azure Pipelines
Nejběžnější způsob, jak připravit závislost CPPSDK v Azure Pipelines, je následující:
PSČ složky, která obsahuje knihovny CPPSDK.
Soubor. zip vraťte do systému správy zdrojového kódu. Soubor. zip zajišťuje kontrolu všech knihoven ve složce CPPSDK, aby se soubory neignorovaly kvůli
.gitignoresouboru.Rozbalte soubor. zip v kanálu sestavení.
Najeďte
USqlScriptTestRunnerna tuto složku unzip v počítači sestavení.
Spuštění testovacích případů C# UDO v Azure Pipelines
Pro test UDO v 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 pomocí balíčku NuGet Microsoft. Azure. datalake. USQL. Interfaces, ujistěte se, že jste do kanálu sestavení přidali úlohu obnovení NuGet.