Freigeben über


Behebung von Problemen bei SQL Server-Datenbankeinheitstests

Beim Arbeiten mit SQL Server-Komponententests in einer Datenbank treten möglicherweise die folgenden Probleme auf.

Komponententests und app.config Änderungen werden ignoriert, wenn Sie Komponententests ausführen.

Wenn Sie die app.config Datei im Testprojekt ändern, müssen Sie das Testprojekt neu erstellen, bevor die Änderungen wirksam werden. Zu diesen Änderungen gehören alle Änderungen, die app.config Sie mit dem Dialogfeld "SQL Server-Testkonfiguration" vornehmen. Wenn Sie das Testprojekt nicht neu erstellen, werden die Änderungen nicht angewendet, wenn Sie die Komponententests ausführen.

Datenbankbereitstellung auf unerwartetes Ziel beim Ausführen von Komponententests

Wenn Sie eine Datenbank aus einem Datenbankprojekt bereitstellen, wenn Sie Komponententests ausführen, wird die Datenbank mithilfe der in der Komponententestkonfiguration angegebenen Verbindungszeichenfolgeninformationen bereitgestellt. Die Verbindungsinformationen, die in den Debugeigenschaften des Datenbankprojekts angegeben sind, werden für diesen Vorgang nicht verwendet, sodass Sie SQL Server-Komponententests für verschiedene Instanzen derselben Datenbank ausführen können.

Timeouts beim Ausführen von Datenbankeinheitstests

Wenn ihre Datenbankeinheitstests aufgrund eines Timeouts fehlschlagen, können Sie den Timeoutzeitraum erhöhen, indem Sie die app.config Datei in Ihrem Testprojekt aktualisieren. Das in der Verbindungszeichenfolge definierte Verbindungstimeout gibt an, wie lange gewartet werden soll, wenn der Komponententest eine Verbindung mit dem Server herstellt. Das Befehlstimeout, das direkt in der app.config Datei definiert werden muss, gibt an, wie lange gewartet werden soll, wenn der Komponententest das Transact-SQL Skript ausführt. Wenn Sie Probleme mit lang andauernden Unit-Tests haben, versuchen Sie, den Zeitlimitwert für Befehle im entsprechenden Kontext zu erhöhen. Um beispielsweise ein Befehlstimeout von 120 Sekunden für das PrivilegedContext-Element anzugeben, aktualisieren Sie folgendes app.config :

<SqlUnitTesting_VS2010>
    <DatabaseDeployment
        DatabaseProjectFileName="..\..\..\..\..\..\Visual Studio 2010\Projects\Database10\Database10\AdventureWorks.sqlproj"
        Configuration="Debug" />
    <DataGeneration ClearDatabase="true" />
    <ExecutionContext Provider="System.Data.SqlClient"
        ConnectionString="Data Source=(LocalDB)\Projects;Initial Catalog=AdventureWorks_Test;Integrated Security=True;Pooling=False"
        CommandTimeout="30" />
    <PrivilegedContext Provider="System.Data.SqlClient"
        ConnectionString="Data Source=(LocalDB)\Projects;Initial Catalog=AdventureWorks_Test;Integrated Security=True;Pooling=False"
        CommandTimeout="120" />
</SqlUnitTesting_VS2010>