Risoluzione dei problemi relativi agli unit test del database
Quando si eseguono unit test su un database, è possibile che si verifichino i problemi descritti in questo argomento.
Autorizzazioni insufficienti quando si eseguono unit test o si generano dati di test
Modifiche a unit test e App.Config ignorate quando si eseguono unit test
Distribuzione del database a una destinazione imprevista quando si eseguono unit test
Timeout quando si eseguono unit test di database
Autorizzazioni insufficienti quando si eseguono unit test o si generano dati di test
È possibile configurare uno unit test per distribuire automaticamente il database e generare dati. Se non si dispone delle autorizzazioni sufficienti per generare dati sul database di destinazione, è possibile che venga visualizzato un messaggio di errore indicante solo che non si dispone delle autorizzazioni per connettersi al database.
Nota
Per risolvere questo problema, eseguire manualmente il piano di generazione dati. Se non si dispone delle autorizzazioni sufficienti per generare i dati, con questo approccio verrà visualizzato un messaggio di errore più dettagliato che consente di correggere il problema.
Modifiche a unit test e App.Config ignorate quando si eseguono unit test
Se si modifica il file App.Config nel progetto di test, è necessario ricompilare tale progetto prima che le modifiche abbiano effetto. Queste modifiche includono quelle apportate al file App.Config utilizzando la finestra di dialogo Configurazione progetto. Se il progetto di test non viene ricompilato, le modifiche non verranno applicate quando si eseguono gli unit test.
Distribuzione del database a una destinazione imprevista quando si eseguono unit test
Se si distribuisce un database quando si eseguono gli unit test, il database verrà creato utilizzando le informazioni sulla stringa di connessione specificate nella configurazione degli unit test. Le informazioni sulla connessione specificate nelle proprietà di compilazione del progetto di database non vengono utilizzate per questa attività, quindi è possibile eseguire unit test diversi su istanze diverse dello stesso database.
Timeout quando si eseguono unit test di database
Se gli unit test del database non riescono a causa di un timeout, è possibile aumentarne l'intervallo aggiornando il file app.config nel progetto del database. Il timeout sulla stringa di connessione specifica il periodo di attesa quando l'unit test si connette al server. Il timeout del comando specifica il periodo di attesa in fase di esecuzione dello script Transact-SQLda parte dello unit test.
Nota
Per risolvere questo problema, specificare un valore più grande valore per l'attributo CommandTimeout sull'elemento Context appropriato nel file app.config del progetto di test. Per specificare ad esempio un timeout del comando di 120 secondi per l'elemento PrivilegedContext, aggiornare il file app.config nel modo seguente:
<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>
Vedere anche
Attività
Procedura: creare unit test del database per funzioni, trigger e stored procedure
Procedura: configurare l'esecuzione di unit test del database