Condividi tramite


Risoluzione dei problemi relativi a unit test basati su dati

Aggiornamento: novembre 2007

Durante l'esecuzione di unit test basati su dati, potrebbero verificarsi problemi di connessione, autenticazione, distribuzione o di altro tipo. Utilizzare le informazioni riportate nelle sezioni seguenti per risolvere tali problemi.

Impossibile connettere il test all'origine dati

Assicurarsi che l'origine dati sia accessibile dall'account utente utilizzato per eseguire i test. A tale scopo, è necessario sapere quale account utente viene utilizzato per eseguire i test. Ad esempio, quando si eseguono i test in remoto, i test vengono eseguiti dall'account utente dell'agente.

Problemi relativi a ASP.NET

I test ASP.NET eseguiti in un server Web IIS vengono eseguiti dall'account 'aspnet'. Pertanto, assicurarsi che l'origine dati sia accessibile dall'utente ASP.NET.

Inoltre, se si utilizza il 'DSN ODBC Excel', è necessario creare il 'DSN di sistema'. Il DSN di sistema è disponibile per tutti gli utenti. Per creare i DSN, utilizzare Amministratore origine dati ODBC. A tale scopo, fare clic sul pulsante Start, scegliere Pannello di controllo, quindi Strumenti di amministrazione e infine Origini dati.

Distribuzione di file di origine dati

Se si utilizza un file di origine dati, ad esempio un foglio di lavoro di Microsoft Excel o un file CSV, assicurarsi che sia disponibile durante l'esecuzione del test. A tale scopo, è possibile aggiungere il file di origine dati come elemento di distribuzione utilizzando la finestra di dialogo di configurazione di esecuzione dei test o come elemento di distribuzione per test. Specificare inoltre un percorso relativo per il file. Per ulteriori informazioni sulle configurazioni di esecuzione dei test, vedere Configurazione dell'esecuzione del test.

Problemi di autenticazione

Utilizzare l'autenticazione di Windows laddove possibile.

Stringhe di connessione

Anche se la finestra di dialogo Connessione dati è efficace per la connessione a Microsoft SQL Server e Oracle, non rappresenta la scelta ideale quando è necessario stabilire una connessione alle origini dati di file. Per tali origini, è possibile specificare una stringa di connessione e quindi selezionare il nome di una tabella dati da una casella di riepilogo a discesa nella finestra Proprietà.

La tabella riportata di seguito contiene esempi di nomi di provider e stringhe di connessione per la maggior parte dei provider di dati.

Origine dati

Nome provider

Stringa di connessione

MS SQL Server (provider .NET)

System.Data.SqlClient

Data Source=SqlServerName;InitialCatalog=MyDatabaseName;Integrated Security=True;Connect Timeout=30;User Instance=True

MS SQL Express Server (provider .NET)

System.Data.SqlClient

Data Source=.\SQLEXPRESS;AttachDbFilename=C:\ \Test.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True

MS SQL Server (OLEDB, provider MDAC)

System.Data.OleDb

Provider=SQLOLEDB;Data Source= SqlServerName;Integrated Security=SSPI;Initial Catalog=MyDatabaseName

MS SQL Server (OLEDB, provider client nativo)

System.Data.OleDb

Provider=SQLNCLI;Data Source= MySqlServerComputerName;Integrated Security=SSPI;Initial Catalog= MyDatabaseName

MS SQL (ODBC)

System.Data.Odbc

Driver={SQL Server};Server=SqlServerName;Database=DatabaseName;Trusted_Connection=yes

Driver={SQL Server};Server=SqlServerName;Database=DatabaseName;Uid=UserName;Pwd=<password>

Oracle (provider .NET)

System.Data.OracleClient

Data Source=OracleServerName;Persist Security Info=True;User ID=scott;Password=<password>;Unicode=True

Oracle (OLEDB, provider Oracle)

System.Data.OleDb

Provider=OraOLEDB.Oracle;Data Source=OracleServerName;Persist Security Info=True;OSAuthent=1

Provider=OraOLEDB.Oracle;Data Source=OracleServerName;Persist Security Info=True;User ID=scott;Password=<password>

Oracle (OLEDB, provider Microsoft)

System.Data.OleDb

Provider=MSDAORA;Data Source= OracleServerName;Persist Security Info=True; User ID=scott;Password=<password>

Oracle (ODBC)

System.Data.Odbc

Driver={Microsoft ODBC for Oracle};Server=OracleServerName;Uid=scott;Pwd=<password>

Excel (OLEDB)

System.Data.OleDb

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ Test.xls;Persist Security Info=False;Extended Properties="Excel 8.0"

Excel (ODBC, driver MS Excel)

System.Data.Odbc

Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=C:\\Test.xls;DefaultDir=C:\

Suggerimento   Per la tabella Sheet1, utilizzare Sheet1$ come nome della tabella dati.

Excel (ODBC, Dsn)

System.Data.Odbc

Dsn=Excel Files;dbq=C:\Test.xls;defaultdir=C:\;driverid=790;maxbuffersize=2048;pagetimeout=5

Suggerimento    Quando si eseguono i test in ASP.NET, è consigliabile utilizzare il DSN di sistema anziché il DSN utente.

CSV/file di testo (OLEDB)

System.Data.OleDb

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties="text;HDR=Yes;FMT=Delimited”

Suggerimento    Per il file test.csv, utilizzare test#csv come nome della tabella.

Nota   HDR=Yes significa che la prima riga contiene nomi di colonna, non dati effettivi.

CSV/file di testo (ODBC)

System.Data.Obdc

Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\;Extensions=asc,csv,tab,txt

ODBC tramite DSN

System.Data.Obdc

Dsn=MyDsn;Uid=UserName;Pwd=<password>

FILEDSN=C:\MyDsn.dsn;Uid=UserName;Pwd=<password>

Specifica di un'origine dati distinta dal codice compilato

È possibile utilizzare il file App.config per specificare un'origine dati per il test. In questo modo è possibile modificare gli attributi dell'origine dati, ad esempio il server, il nome di tabella e così via, senza ricompilare l'assembly di test. Quando si esegue il test dalla riga di comando, assicurarsi che il file App.config si trovi nella stessa directory dell'assembly di test.

Esempio:

[TestMethod][DataSource("MyDataSource")]

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

Contenuto del file App.config:

<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>

Nota:

La proprietà Run unit tests in application domain determina se ogni assembly di unit test verrà eseguito in un dominio applicazione separato. L'impostazione predefinita di questa proprietà è True. Se gli unit test non richiedono un dominio applicazione separato o un file app.config per funzionare correttamente, gli unit test potrebbero essere eseguiti più velocemente impostando il valore di questa proprietà a False.

Dopo l'inizializzazione del database in TestInitialize, le modifiche non vengono visualizzate

Quando il test basato su dati viene eseguito, l'adattatore di unit test si connette alla tabella dati e compila un elenco di righe di dati. Quindi, per ogni riga esegue i metodi TestInitialize, TestMethod e TestCleanup. Se si modificano le righe di dati in TestInitialize, l'adattatore di unit test non visualizzerà tali modifiche. Pertanto, se si desidera modificare la tabella dati per un test basato su dati, eseguire questa operazione nel metodo ClassInitialize o AssemblyInitialize.

Unit test superato ma non contiene risultati interni

Questo risultato indica che la tabella dati non contiene righe.

Altri problemi

Se il problema non è elencato in questa sezione, è possibile provare a cercare risposte o inviare domande a forum di supporto e ai forum specifici di Visual Studio Team Edition for Developers e Visual Studio Team System Test Edition.

Vedere anche

Attività

Procedura: configurare unit test basati su dati

Concetti

Codifica di unit test basati sui dati