Solucionando problemas de testes de unidade baseados em dados

Você pode encontrar a conexão, autenticação, implantação ou outros problemas quando você executa testes de unidade orientado a dados.Use as informações nas seções a seguir para resolver esses problemas.

Teste não consegue se conectar à fonte de dados

Certifique-se de que a fonte de dados pode ser acessada pela conta de usuário usada para executar testes.Para fazer isso, você precisa saber qual conta de usuário está sendo usada para executar testes.Por exemplo, quando você executa testes remotamente, os testes executados da conta de usuário do agente.

Problemas do ASP.NET

Testes ASP.NET executados em um servidor Web do IIS são executados a partir da conta 'aspnet'.Portanto, verifique se que a fonte de dados pode ser acessada por usuário ASP.NET.

Além disso, se você usar o 'Excel ODBC DSN', você deve criar 'Dsn de sistema'.DSN de sistema está disponível para todos os usuários.Para criar nomes de fonte de dados, use o administrador de fonte de dados ODBC.Para fazer isso, clicar Iniciar, abra o painel de controle, abra o Ferramentas administrativase, em seguida, em em aberto Fontes de dados.

Implantando arquivos de fonte de dados

Se você usar um dados arquivo de origem sistema autônomo planilha do Microsoft Excel ou um arquivo .csv, certifique-se de que ele está disponível quando o teste é executado.Uma maneira de fazer isso é adicionar o arquivo de fonte de dados sistema autônomo um item de implantação usando a caixa de diálogo de configuração de execução de teste ou sistema autônomo um item de implantação por teste.Além disso, especificar um caminho relativo para o arquivo.Para obter mais informações sobre configurações de tempo de execução de teste, consulte Configurando a Execução de Teste.

Problemas de autenticação

Use a autenticação do Windows sempre que possível.

Sequências de conexão

Embora o Conexão de dadoscaixa de diálogo funciona bem para conectando ao Microsoft SQL servidor e Oracle, não é conveniente quando você deve estabelecer uma conexão com fontes de dados de arquivo.Para essas fontes, você pode especificar uma seqüência de caracteres de conexão e, em seguida, selecionar um nome da tabela de dados de uma caixa de listagem drop-down na janela Propriedades.

A tabela a seguir contém exemplos de nomes de provedor e seqüências de conexão para a maioria dos provedores de dados.

Data Source

Nome do provedor

cadeia de conexão

MS SQL servidor (.NET provedor)

sistema.dados.SqlClient

A fonte de dados = Nome_servidor_sql; InitialCatalog = MyDatabaseName; segurança integrada = True; conectar Timeout = 30; instância de usuário = True

MS SQL Express servidor (NET)

sistema.dados.SqlClient

A fonte de dados =.Segurança \SQLEXPRESS;AttachDbFilename=C:\ \teste.mdf;Integrated = True; conectar Timeout = 30; instância de usuário = True

MS SQL servidor (OLEDB, MDAC provedor)

sistema.dados.OleDb

Provider=SQLOLEDB;fonte de dados= Nome_servidor_sql; Integrated segurança = SSPI; Initial catálogo = MydadosbaseName

MS SQL servidor (OLEDB, clientes nativo do provedor)

sistema.dados.OleDb

Provider=SQLNCLI;fonte de dados= MySqlServerComputerName; Integrated segurança = SSPI; Initial catálogo = MydadosbaseName

MS SQL (ODBC)

sistema.dados.ODBC

Driver = {SQL Server}; servidor = Nome_servidor_sql; banco de dados = DatabaseName; Trusted_Connection = yes

Driver = {SQL Server}; servidor = Nome_servidor_sql; banco de dados = DatabaseName; UID = UserName; PWD = <senha>

Oracle (provedor do .NET)

sistema.dados.OracleClient

A fonte de dados = OracleServerName; Persist segurança Info = True; usuário ID = scott; senha = <password>; Unicode = True

Oracle (Oracle provedor OLEDB)

sistema.dados.OleDb

provedor=OraOLEDB.Oracle;fonte de dados=OracleServerName;Persist segurança Info = True; OSAuthent = 1

provedor=OraOLEDB.Oracle;fonte de dados=OracleServerName;Persist segurança Info = True; usuário ID = scott; senha = <password>

Oracle (provedor Microsoft OLEDB)

sistema.dados.OleDb

Provider=MSDAORA;fonte de dados= OracleServerName; Persist segurança Info = True; usuário ID = scott; senha = <password>

Oracle (ODBC)

sistema.dados.ODBC

Driver = {Microsoft ODBC para Oracle}; servidor = OracleServerName; UID = scott; PWD = <senha>

Excel (OLEDB)

sistema.dados.OleDb

provedor=Microsoft.Jet.OLEDB.4.0;fonte de dados=C:\ teste.xls;Persist segurança Info = falso; Extended Properties = "Excel 8.0"

Excel (ODBC, MS Excel Driver)

sistema.dados.ODBC

Driver = {driver do Microsoft Excel (*.xls)};DriverId=790;dbq=C:\\teste.xls;DefaultDir=C:\

Dica   Para a tabela de Sheet1 use Sheet1 $ sistema autônomo nome da tabela de dados.

Excel (ODBC, DSN)

sistema.dados.ODBC

DSN = Files;dbq=C:\teste.xls;defaultdir=C:\;driverid=790;maxbuffersize=2048;pagetimeout=5 do Excel

Dica    Quando você executa testes em ASP.NET, considere usar o DSN do sistema em vez da DSN de usuário.

CSV / arquivo de texto (OLEDB)

sistema.dados.OleDb

provedor=Microsoft.Jet.OLEDB.4.0;dados fonte = D: \; Extended Properties = "texto; HDR = Yes; FMT = Delimited ”

Dica    Para o arquivo test.csv, use #csv teste sistema autônomo o nome da tabela.

Observação:   HDR = Yes significa que a primeira linha contém coluna nomes, não os dados real.

Arquivo CSV/texto (ODBC)

sistema.dados.obdc

Driver = {Microsoft Texto Driver (*.txt; *.csv)}; DBQ = c: \; extensões = asc, csv, guia, txt

ODBC através do DSN

sistema.dados.obdc

DSN = MyDsn; UID = UserName; PWD = <senha>

FILEDSN=C:\MyDsn.DSN;Uid=UserName;pwd= <senha>

Especificar uma fonte de dados separadamente do código compilado

Você pode usar o arquivo de configuração.XML para especificar uma fonte de dados para seu teste.Isso permite que você altere sistema autônomo atributos de fonte de dados, sistema autônomo o servidor, nome da tabela e assim por diante, sem recompilar o assembly de teste.Quando você executa o teste a partir da linha de comando, certifique-se de que o App. arquivo de configuração está no mesmo diretório do assembly de teste.

Exemplo:

[TestMethod][DataSource("MyDataSource")]

[DeploymentItem("MyDataSource.csv")]public void MyTest() {}

Sumário do aplicativo. arquivo de configuração:

<configSections><section name="microsoft.visualstudio.qualitytools" type="Microsoft.VisualStudio.QualityTools.UnitTesting.Framework.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/></configSections><microsoft.visualstudio.qualitytools><dataSources><add name="MyDataSource" connectionString="MyConnectionString" dataTableName="ChildSearchCriteria" dataAccessMethod="Sequential" /></dataSources></microsoft.visualstudio.qualitytools>

Observação:

O Run unit tests in application domain propriedade determina se cada assembly de teste de unidade será executado em um domínio do aplicativo separado. A configuração padrão de esta propriedade for True.Se os testes de unidade não precisarem de um arquivo de domínio ou app.config de aplicativos separados para funcionar corretamente, os testes de unidade podem executar mais rapidamente se você conjunto o valor dessa propriedade como False.

Após inicializar o banco de dados em TestInitialize, as alterações não aparecem

Quando executa o teste orientado a dados, teste de unidade adaptador conecta-se a sua tabela de dados e cria uma lista de linhas de dados.Em seguida, para cada linha executa os métodos TestInitialize TestMethod e TestCleanup.Se você alterar as linhas de dados TestInitialize, o adaptador de teste de unidade não verá essa alteração.Portanto, se você deseja alterar sua tabela de dados para um teste orientados a dados, faça isso no método ClassInitialize ou AssemblyInitialize.

Passagens de teste a unidade, mas contém nenhum resultado interna

Esse resultado significa que sua tabela de dados não contém nenhuma linha.

Outros problemas

Se o problema não estiver listado aqui, você pode tentar procurar respostas em ou postar dúvidas para o Fóruns de suporte e os fóruns individuais para Visual Studio Team Edition for Developers e Visual Studio Team System Test Edition.

Consulte também

Tarefas

Como: Configurar um teste de unidade orientados a dados

Conceitos

Codificando um teste de unidade orientado a dados