Testowanie kodu usługi Azure Data Lake Analytics
Usługa Azure Data Lake udostępnia język U-SQL . Język U-SQL łączy deklaratywny język SQL z imperatywnego języka C# w celu przetwarzania danych w dowolnej skali. Z tego dokumentu dowiesz się, jak tworzyć przypadki testowe dla kodu U-SQL i rozszerzonego operatora zdefiniowanego przez użytkownika (UDO).
Ważne
Usługa Azure Data Lake Analytics wycofana 29 lutego 2024 r. Dowiedz się więcej z tego ogłoszenia.
Na potrzeby analizy danych organizacja może używać usługi Azure Synapse Analytics lub Microsoft Fabric.
Testowanie skryptów U-SQL
Skrypt U-SQL jest kompilowany i zoptymalizowany pod kątem kodu wykonywalnego do uruchamiania na platformie Azure lub na komputerze lokalnym. Proces kompilacji i optymalizacji traktuje cały skrypt U-SQL jako całość. Nie można wykonać tradycyjnego testu jednostkowego dla każdej instrukcji. Jednak przy użyciu zestawu SDK testu U-SQL i lokalnego zestawu SDK uruchamiania można wykonywać testy na poziomie skryptu.
Tworzenie przypadków testowych dla skryptu U-SQL
Azure Data Lake Tools for Visual Studio umożliwia tworzenie przypadków testowych skryptu U-SQL.
Kliknij prawym przyciskiem myszy skrypt U-SQL w Eksplorator rozwiązań, a następnie wybierz pozycję Utwórz test jednostkowy.
Utwórz nowy projekt testowy lub wstaw przypadek testowy do istniejącego projektu testowego.
Zarządzanie testowym źródłem danych
Podczas testowania skryptów U-SQL potrzebne są pliki wejściowe testowe. Aby zarządzać danymi testowymi, w Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt U-SQL i wybierz pozycję Właściwości. Źródło można wprowadzić w obszarze Testowe źródło danych.
Po wywołaniu interfejsu Initialize()
w zestawie SDK testu U-SQL tymczasowy folder główny danych lokalnych jest tworzony w katalogu roboczym projektu testowego. Wszystkie pliki i foldery w folderze źródła danych testowych są kopiowane do tymczasowego folderu głównego danych lokalnych przed uruchomieniem przypadków testowych skryptu U-SQL. Możesz dodać więcej folderów źródła danych testowych, dzieląc ścieżkę folderu danych testowych średnikami.
Zarządzanie środowiskiem bazy danych na potrzeby testowania
Jeśli skrypty U-SQL używają obiektów bazy danych U-SQL lub wysyłają do nich zapytania, przed uruchomieniem przypadków testowych U-SQL należy zainicjować środowisko bazy danych. Takie podejście może być konieczne podczas wywoływania procedur składowanych. Interfejs Initialize()
w zestawie SDK testu U-SQL pomaga wdrożyć wszystkie bazy danych, do których odwołuje się projekt U-SQL, do tymczasowego lokalnego folderu głównego danych w katalogu roboczym projektu testowego.
Aby uzyskać więcej informacji na temat zarządzania odwołaniami projektu bazy danych U-SQL dla projektu U-SQL, zobacz Reference a U-SQL database project (Dokumentacja projektu bazy danych U-SQL).
Weryfikowanie wyników testu
Interfejs Run()
zwraca wynik wykonania zadania.
0 oznacza sukces, a 1 oznacza niepowodzenie. Możesz również użyć funkcji potwierdzenia języka C#, aby zweryfikować dane wyjściowe.
Uruchamianie przypadków testowych w programie Visual Studio
Projekt testu skryptu U-SQL jest oparty na strukturze testów jednostkowych języka C#. Po utworzeniu projektu wybierz pozycję Testuj>Eksploratora testówsystemu Windows>. Przypadki testowe można uruchamiać z Poziomu Eksploratora testów. Alternatywnie kliknij prawym przyciskiem myszy plik .cs w teście jednostkowym i wybierz polecenie Uruchom testy.
Testowanie obiektów zdefiniowanych przez użytkownika języka C#
Tworzenie przypadków testowych dla obiektów zdefiniowanych przez użytkownika języka C#
Możesz użyć struktury testów jednostkowych języka C#, aby przetestować operatory zdefiniowane przez użytkownika w języku C#. Podczas testowania obiektów zdefiniowanych przez użytkownika należy przygotować odpowiednie obiekty IRowset jako dane wejściowe.
Istnieją dwa sposoby tworzenia obiektu IRowset :
Załaduj dane z pliku, aby utworzyć zestaw 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');
Użyj danych z kolekcji danych, aby utworzyć zestaw 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());
Weryfikowanie wyników testu
Po wywołaniu funkcji UDO można zweryfikować wyniki za pomocą weryfikacji wartości schematu i zestawu wierszy przy użyciu funkcji potwierdzenia języka C#. Do rozwiązania można dodać projekt U-SQL C# UDO Unit Test Project . W tym celu wybierz pozycję Plik > nowy > projekt w programie Visual Studio.
Uruchamianie przypadków testowych w programie Visual Studio
Po utworzeniu projektu wybierz pozycję Testuj>Eksploratora testówsystemu Windows>. Przypadki testowe można uruchamiać z Poziomu Eksploratora testów. Alternatywnie kliknij prawym przyciskiem myszy plik .cs w teście jednostkowym i wybierz polecenie Uruchom testy.
Uruchamianie przypadków testowych w usłudze Azure Pipelines
Zarówno projekty testowe skryptu U-SQL , jak i projekty testowe UDO języka C# dziedziczą projekty testów jednostkowych języka C#. Zadanie testowe programu Visual Studio w usłudze Azure Pipelines może uruchamiać te przypadki testowe.
Uruchamianie przypadków testowych U-SQL w usłudze Azure Pipelines
W przypadku testu U-SQL upewnij się, że ładujesz CPPSDK
się na komputerze kompilacji, a następnie przekaż ścieżkę CPPSDK
do USqlScriptTestRunner(cppSdkFolderFullPath: @"")
.
Co to jest CPPSDK?
CPPSDK to pakiet zawierający Microsoft Visual C++ 14 i Windows SDK 10.0.10240.0. Ten pakiet zawiera środowisko wymagane przez środowisko uruchomieniowe U-SQL. Ten pakiet można pobrać w folderze instalacji Azure Data Lake Tools for Visual Studio:
- W przypadku programu Visual Studio 2015 jest on w obszarze
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
- W przypadku programu Visual Studio 2017 jest on w obszarze
C:\Program Files (x86)\Microsoft Visual Studio\2017\<Visual Studio Edition>\SDK\ScopeCppSDK
- W przypadku programu Visual Studio 2019 jest on w obszarze
C:\Program Files (x86)\Microsoft Visual Studio\2019\<Visual Studio Edition>\SDK\ScopeCppSDK
Przygotowywanie zestawu CPPSDK w agencie kompilacji usługi Azure Pipelines
Najbardziej typowym sposobem przygotowania zależności CPPSDK w usłudze Azure Pipelines jest następujący:
Spakuj folder zawierający biblioteki CPPSDK.
Zaewidencjonuj plik .zip w systemie kontroli źródła. Plik .zip gwarantuje, że zaewidencjonujesz wszystkie biblioteki w folderze CPPSDK, aby pliki nie zostały zignorowane z
.gitignore
powodu pliku.Rozpakuj plik .zip w potoku kompilacji.
Wskaż
USqlScriptTestRunner
ten rozpakowany folder na komputerze kompilacji.
Uruchamianie przypadków testowych UDO języka C# w usłudze Azure Pipelines
W przypadku testu UDO języka C# należy odwołać się do następujących zestawów, które są wymagane dla obiektów zdefiniowanych przez użytkownika.
- Microsoft.Analytics.Interfaces
- Microsoft.Analytics.Types
- Microsoft.Analytics.UnitTest
Jeśli odwołujesz się do nich za pośrednictwem pakietu NuGet Microsoft.Azure.DataLake.USQL.Interfaces, upewnij się, że dodano zadanie przywracania NuGet w potoku kompilacji.