Rozwiązywanie problemów z testowaniem jednostkowym bazy danych programu SQL Server

Podczas pracy z testami jednostkowymi programu SQL Server w bazie danych mogą wystąpić następujące problemy.

Testy jednostkowe i zmiany app.config są ignorowane podczas uruchamiania testów jednostkowych

Jeśli zmodyfikujesz app.config plik w projekcie testowym, musisz ponownie skompilować projekt testowy przed wprowadzeniem zmian. Zmiany te obejmują wszelkie modyfikacje, które wprowadzasz app.config za pomocą okna dialogowego Konfiguracja testu programu SQL Server. Jeśli nie odbudujesz projektu testowego, zmiany nie zostaną zastosowane podczas uruchamiania testów jednostkowych.

Wdrażanie bazy danych do nieoczekiwanego miejsca docelowego podczas uruchamiania testów jednostkowych

W przypadku wdrażania bazy danych z projektu bazy danych podczas uruchamiania testów jednostkowych baza danych jest wdrażana przy użyciu informacji o parametrach połączenia określonych w konfiguracji testu jednostkowego. Informacje o połączeniu określone w projekcie bazy danych Właściwości debugowania nie są używane dla tego zadania, co umożliwia uruchamianie testów jednostkowych programu SQL Server dla różnych wystąpień tej samej bazy danych.

Przekroczenia limitu czasu podczas uruchamiania testów jednostkowych bazy danych

Jeśli testy jednostkowe bazy danych kończą się niepowodzeniem z powodu przekroczenia limitu czasu, możesz zwiększyć limit czasu, aktualizując app.config plik w projekcie testowym. Limit czasu połączenia zdefiniowany w parametrach połączenia określa, jak długo będzie czekać, gdy test jednostkowy łączy się z serwerem. Limit czasu polecenia, który musi być zdefiniowany bezpośrednio w app.config pliku, określa, jak długo czekać, gdy test jednostkowy wykonuje skrypt Transact-SQL. Jeśli masz problemy z długotrwałymi testami jednostkowymi, spróbuj zwiększyć wartość limitu czasu polecenia w odpowiednim elemecie kontekstu. Aby na przykład określić limit czasu polecenia 120 sekund dla elementu PrivilegedContext zaktualizuj app.config w następujący sposób:

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