Problemen met het testen van SQL Server Database-eenheden oplossen
U kunt de problemen in dit onderwerp tegenkomen wanneer u werkt met SQL Server-eenheidstests voor een database:
-eenheidstests en App.Config-wijzigingen genegeerd wanneer u eenheidstests uitvoert
database-implementatie naar onverwacht doel wanneer u eenheidstests uitvoert
Unit Tests en wijzigingen in App.Config worden genegeerd bij het uitvoeren van unit tests.
Als u het Bestand App.Config in het testproject wijzigt, moet u het testproject opnieuw opbouwen voordat deze wijzigingen van kracht worden. Deze wijzigingen omvatten de wijzigingen die u aanbrengt in App.Config met behulp van het dialoogvenster SQL Server-testconfiguratie. Als u het testproject niet opnieuw opbouwt, worden de wijzigingen niet toegepast wanneer u de eenheidstests uitvoert.
Database implementatie naar onverwacht doel bij het uitvoeren van unittests
Als u een database implementeert vanuit een databaseproject wanneer u eenheidstests uitvoert, wordt de database geïmplementeerd met behulp van de verbindingsreeksgegevens die zijn opgegeven in de testconfiguratie van uw eenheid. De verbindingsgegevens die zijn opgegeven in de eigenschappen voor foutopsporing van het databaseproject, worden niet gebruikt voor deze taak, zodat u SQL Server-eenheidstests kunt uitvoeren op verschillende exemplaren van dezelfde database.
Time-outs bij het uitvoeren van database-eenheidstests
Als uw database-eenheidstests mislukken vanwege een time-out, kunt u de time-outperiode verhogen door het app.config bestand in uw testproject bij te werken. De time-out voor verbinding, gedefinieerd in de verbindingsreeks, geeft aan hoe lang moet worden gewacht wanneer de eenheidstest verbinding maakt met de server. De time-out van de opdracht, die rechtstreeks in het app.config-bestand moet worden gedefinieerd, geeft aan hoe lang moet worden gewacht wanneer de eenheidstest het Transact-SQL script uitvoert. Als u problemen ondervindt met langlopende eenheidstests, kunt u proberen de time-outwaarde van de opdracht in het juiste contextelement te verhogen. Als u bijvoorbeeld een time-out voor de opdracht van 120 seconden wilt opgeven voor het element PrivilegedContext, werkt u de app.config als volgt bij:
<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>
Zie ook
Instructies: SQL Server-eenheidstests maken voor functies, triggers en opgeslagen procedures
Procedure: Testuitvoering van SQL Server-eenheid configureren