Partilhar via


Solucionando problemas do teste de unidade de banco de dados

Quando você executa testes de unidade em um banco de dados, você pode encontrar os problemas neste tópico:

  • Permissões insuficientes ao executar testes de unidade ou gerar dados de teste

  • Problemas ao realizar testes de unidade em procedimentos armazenados numerados

  • Teste de unidade e alterações App.config ignoradas ao executar testes de unidade

  • Implantação de banco de dados para o alvo inesperado ao executar testes de unidade

  • Tempos limite quando executar testes de unidade de banco de dados

Permissões insuficientes ao executar testes de unidade ou gerar dados de teste

Você pode configurar um teste de unidade para implantar o banco de dados e gerar dados automaticamente.Se você não tem permissões suficientes para gerar dados para o banco de dados de destino, você poderá receber um erro que indica somente que você não tem permissões para se conectar ao banco de dados.

Observação:

Para contornar esse problema, executar o plano de geração de dados manualmente.Se você não tem permissões suficientes para gerar dados, essa abordagem lhe dará uma mensagem de erro mais detalhada que ajuda a corrigir o problema.

Problemas ao realizar testes de unidade em procedimentos armazenados numerados

Se você criar testes de unidade de banco de dados para um banco de dados que contém sistema autônomo procedimentos armazenados numerados (sistema autônomo MyProcedure; 2), a Criar testes de unidade caixa de diálogo não exibirá a designação numérica.Esse comportamento pode resultar no mesmo nome de procedimento que aparece várias vezes, se você tiver várias versões numeradas de um ou mais procedimentos armazenados.

Além disso, o script que é gerado para testar os procedimentos armazenados está faltando a designação numérica.Por exemplo, se você gerar um teste de unidade para um procedimento chamado MyProcedure; 2, o script semelhante à seguinte:

EXEC @RC = [dbo].[MyProcedure]
Observação:

Para contornar esse problema, modifique o script gerado para adicionar novamente a designação numérica antes de executar os testes de unidade.Se você gerado testes de unidade para vários procedimentos armazenados numerados, você precisará corrigir cada teste.

Teste de unidade e alterações App.config ignoradas ao executar testes de unidade

Se você modificar o App. arquivo de configuração no projeto teste, você deve recompilar o projeto de teste para que essas alterações tenham efeito.Essas alterações incluem aqueles que você fizer App.config usando o Configuração de projeto caixa de diálogo.Se você não recompilar o projeto de teste, as alterações não são aplicadas quando você executar os testes de unidade.

Implantação de banco de dados para o alvo inesperado ao executar testes de unidade

Se você implantar um banco de dados quando você executa testes de unidade, o banco de dados é criado usando as informações da cadeia de conexão especificada na configuração de teste de unidade.As informações de conexão que são especificadas nas propriedades de compilação de projeto do banco de dados não são usadas para essa tarefa, você pode executar testes de unidade diferentes nos diferentes instâncias do mesmo banco de dados.

Tempos limite quando você executa testes de unidade de banco de dados

Se os testes de unidade de banco de dados estão falhando por causa de um time limite, você pode aumentar o período de time limite, atualizando o App. arquivo de configuração no seu projeto de banco de dados.O time limite na cadeia de caracteres de conexão Especifica quanto time de espera quando o teste de unidade se conecta ao servidor.O time limite do comando Especifica quanto time de espera quando o teste de unidade executa o script do Transact-SQL (T-SQL).

Observação:

Para contornar esse problema, especifique um valor maior para o atributo de CommandTimeout no elemento de contexto apropriado no arquivo app.config para seu projeto de teste.Por exemplo, para especificar um time limite do comando de 120 segundos para o elemento PrivilegedContext, atualize o arquivo app.config da seguinte maneira:

<DatabaseUnitTesting>
    <DatabaseDeployment DatabaseProjectFileName="test.dbproj" Configuration="Debug" />
    <DataGeneration DataGenerationFileName="test.dgen" ClearDatabase="true" />
    <ExecutionContext Provider="System.Data.SqlClient" ConnectionString="another connection string" />
    <PrivilegedContext Provider="System.Data.SqlClient" ConnectionString="test" CommandTimeout=”120” />
</DatabaseUnitTesting>

Consulte também

Tarefas

Como: Criar testes de unidade de banco de dados para procedimentos armazenados, disparadores e funções

Como: Configurar execução teste de unidade de banco de dados

Conceitos

Visão geral da terminologia do banco de dados edição