2017-06-05 1 views
0

Wir haben eine Lösung, die von TFS und SQL-Server-Unit-Tests erstellt wird, die auf jedem Build ausgeführt werden sollte. Der Testteil besteht ebenfalls aus einem Datenbankprojekt, das vor dem Ausführen von Tests in localDB bereitgestellt werden sollte. Die Konfiguration für SQL Server Unit-Test-Projekt ist:SQL Server-Unit-Test auf TFS-Build

<configSections> 
 
     <section name="SqlUnitTesting" type="Microsoft.Data.Tools.Schema.Sql.UnitTesting.Configuration.SqlUnitTestingSection, Microsoft.Data.Tools.Schema.Sql.UnitTesting, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
 
     <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections> 
 
    <connectionStrings> 
 
    <add name="SnapDBContext" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=SampleDatabase;Integrated Security=SSPI;" providerName="System.Data.SqlClient" /> 
 
    </connectionStrings> 
 
    <SqlUnitTesting> 
 
     <DatabaseDeployment DatabaseProjectFileName="..\..\..\..\Database\SampleDatabase.sqlproj" Configuration="Debug" /> 
 
     <DataGeneration ClearDatabase="true" /> 
 
     <ExecutionContext Provider="System.Data.SqlClient" ConnectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=SampleDatabase;Integrated Security=True;Pooling=False" CommandTimeout="30" /> 
 
     <PrivilegedContext Provider="System.Data.SqlClient" ConnectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=SampleDatabase;Integrated Security=True;Pooling=False" CommandTimeout="30" /> 
 
    </SqlUnitTesting> 
 
    <entityFramework> 
 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework" /> 
 
    <providers> 
 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
 
    </providers> 
 
    </entityFramework>

Alles funktioniert auf meinem lokalen Rechner in Ordnung, aber auf TFS schlägt es mit einem Fehler:

An error occurred while SQL Server unit testing settings were being read from the configuration file. Click the test project, open the SQL Server Test Configuration dialog box from the SQL menu, add the settings to the dialog box, and rebuild the project.

Die Jungs übernehmen dass die Tests bei TFS 2013 einwandfrei funktionierten, aber nach dem Upgrade auf TFS 2015 haben wir begonnen, diesen Fehler zu erhalten. Versuchte verschiedene Lösungen hier und über das Internet gefunden, aber nichts hilft. Was vermisse ich? Danke.

Antwort

0

Versuchen Sie, eine andere SQL Server-Instanz (nicht Localdb, die Verwendung einer anderen SQL Server-Instanz funktioniert gut für mich).

Auf der anderen Seite verwenden Sie die Windows-Authentifizierung. Stellen Sie daher sicher, dass das Build-Dienstkonto über die erforderliche Berechtigung (z. B. create database) für SQL Server verfügt.

+0

Ich habe versucht, eine andere Instanz von SQL Server (SQL Server 2014 und SQL Express) ohne Glück zu verwenden. Auch versucht, mit Berechtigungen des Dienstkontos zu spielen und auch andere Anmeldeinformationen zu übergeben, anstatt Windows-Authentifizierung mit dem gleichen Ergebnis zu verwenden – Andrew

+0

@Andrew Konnten Sie von einem anderen Computer eine Verbindung zu diesem SQL Server herstellen? Bedeutet eine andere Berechtigung ein SQL-Konto (SQL-Authentifizierung)? Versuchen Sie, das Dienstkonto in Ihr Konto zu ändern und überprüfen Sie das Ergebnis. –

+0

Vielen Dank für Ihre Antworten. Sowohl der TFS- als auch der SQL-Server sind auf meinem lokalen Rechner eingerichtet, also könnte ich mich mit dem SQL-Server verbinden. "Versuchen Sie, das Dienstkonto auf Ihr Konto zu ändern", hat Ihre Idee wahrscheinlich nicht verstanden. – Andrew