Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Azure Data Lake fornece a linguagem U-SQL . O U-SQL combina SQL declarativo com C# imperativo para processar dados em qualquer escala. Neste documento, você aprenderá a criar casos de teste para U-SQL e código estendido de operador definido pelo usuário (UDO) C#.
Importante
O Azure Data Lake Analytics foi desativado em 29 de fevereiro de 2024. Saiba mais com este anúncio.
Para análise de dados, sua organização pode usar o Azure Synapse Analytics ou o Microsoft Fabric.
Testar scripts U-SQL
O script U-SQL é compilado e otimizado para que o código executável seja executado no Azure ou no computador local. O processo de compilação e otimização trata todo o script U-SQL como um todo. Não é possível fazer um teste de unidade tradicional para cada afirmação. No entanto, usando o SDK de teste U-SQL e o SDK de execução local, você pode fazer testes no nível de script.
Criar casos de teste para script U-SQL
O Azure Data Lake Tools for Visual Studio permite criar casos de teste de script U-SQL.
Clique com o botão direito do mouse em um script U-SQL no Gerenciador de Soluções e selecione Criar Teste de Unidade.
Crie um novo projeto de teste ou insira o caso de teste em um projeto de teste existente.
Gerenciar a fonte de dados de teste
Ao testar scripts U-SQL, você precisa de arquivos de entrada de teste. Para gerenciar os dados de teste, no Gerenciador de Soluções, clique com o botão direito do mouse no projeto U-SQL e selecione Propriedades. Você pode inserir uma fonte em Test Data Source.
Quando você chama a interface Initialize() no SDK de teste U-SQL, uma pasta raiz de dados local temporária é criada no diretório de trabalho do projeto de teste. Todos os arquivos e pastas na pasta da fonte de dados de teste são copiados para a pasta raiz de dados local temporária antes de executar os casos de teste de script U-SQL. Você pode adicionar mais pastas de fonte de dados de teste dividindo o caminho da pasta de dados de teste com um ponto-e-vírgula.
Gerenciar o ambiente de banco de dados para teste
Se seus scripts U-SQL usam ou consultam com objetos de banco de dados U-SQL, você precisa inicializar o ambiente de banco de dados antes de executar casos de teste U-SQL. Essa abordagem pode ser necessária ao chamar procedimentos armazenados. A interface Initialize() no SDK de teste U-SQL ajuda você a implantar todos os bancos de dados referenciados pelo projeto U-SQL na pasta raiz de dados local temporária no diretório de trabalho do projeto de teste.
Para obter mais informações sobre como gerenciar referências de projeto de banco de dados U-SQL para um projeto U-SQL, consulte Referenciar um projeto de banco de dados U-SQL.
Verificar os resultados dos testes
A interface Run() retorna um resultado de execução de trabalho.
0 significa sucesso e 1 significa fracasso. Você também pode usar funções de asserção em C# para verificar as saídas.
Executar casos de teste no Visual Studio
Um projeto de teste de script u-SQL é construído sobre uma estrutura de teste de unidade C#. Depois de criar o projeto, selecione Test>Windows>Test Explorer. Você pode executar casos de teste do Gerenciador de Testes. Como alternativa, clique com o botão direito do mouse no arquivo .cs no teste de unidade e selecione Executar testes.
Os UDOs de teste em C#
Criar casos de teste para UDOs em C#
Você pode usar uma estrutura de teste de unidade C# para testar seus operadores definidos pelo usuário (UDOs) em C#. Ao testar UDOs, você precisa preparar objetos IRowset correspondentes como entradas.
Há duas maneiras de criar um objeto IRowset :
Carregue dados de um arquivo para criar 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');Use dados de uma coleção de dados para criar 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());
Verificar os resultados dos testes
Depois de chamar as funções UDO, você pode verificar os resultados por meio da verificação do esquema e do valor do conjunto de linhas usando as funções de afirmação C#. Você pode adicionar um Projeto de Teste de Unidade U-SQL C# UDO à sua solução. Para fazer isso, selecione Arquivo > Novo > Projeto no Visual Studio.
Executar casos de teste no Visual Studio
Depois de criar o projeto, selecione Test>Windows>Test Explorer. Você pode executar casos de teste do Gerenciador de Testes. Como alternativa, clique com o botão direito do mouse no arquivo .cs no teste de unidade e selecione Executar testes.
Execute testes no Azure Pipelines
Os projetos de teste de script U-SQL e os projetos de teste UDO C# herdam ambos projetos de teste de unidade C#. A tarefa de teste do Visual Studio no Azure Pipelines pode executar esses casos de teste.
Executar casos de teste U-SQL no Azure Pipelines
Para um teste U-SQL, certifique-se de carregar CPPSDK no computador de compilação e, em seguida, passe o caminho CPPSDK para USqlScriptTestRunner(cppSdkFolderFullPath: @"").
O que é CPPSDK?
CPPSDK é um pacote que inclui o Microsoft Visual C++ 14 e Windows SDK 10.0.10240.0. Este pacote inclui o ambiente necessário para o tempo de execução do U-SQL. Você pode obter este pacote na pasta de instalação do Azure Data Lake Tools for Visual Studio:
- Para o Visual Studio 2015, ele está sob
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 - Para o Visual Studio 2017, ele está sob
C:\Program Files (x86)\Microsoft Visual Studio\2017\<Visual Studio Edition>\SDK\ScopeCppSDK - Para o Visual Studio 2019, encontra-se em
C:\Program Files (x86)\Microsoft Visual Studio\2019\<Visual Studio Edition>\SDK\ScopeCppSDK
Preparar o CPPSDK no agente de compilação do Azure Pipelines
A maneira mais comum de preparar a dependência CPPSDK no Azure Pipelines é a seguinte:
Compacte a pasta que inclui as bibliotecas CPPSDK.
Realize o check-in do arquivo .zip no seu sistema de controlo de código-fonte. O ficheiro .zip garante que se faça o carregamento de todas as bibliotecas na pasta CPPSDK, para que os ficheiros não sejam ignorados por causa de um ficheiro
.gitignore.Descompacte o arquivo .zip no pipeline de compilação.
Aponte
USqlScriptTestRunnerpara essa pasta descompactada no computador de compilação.
Executar casos de teste UDO em C# no Azure Pipelines
Para um teste UDO em C#, certifique-se de referenciar os conjuntos a seguir, que são necessários para UDOs.
- Microsoft.Analytics.Interfaces
- Microsoft.Analytics.Tipos
- Microsoft.Analytics.UnitTest
Se você fizer referência a eles por meio do pacote NuGet Microsoft.Azure.DataLake.USQL.Interfaces, certifique-se de adicionar uma tarefa de Restauração do NuGet em seu pipeline de compilação.