【问题标题】:SQL server unit test on TFS buildTFS 构建上的 SQL Server 单元测试
【发布时间】:2017-06-05 11:28:16
【问题描述】:

我们有一个由 TFS 和 SQL 服务器单元测试构建的解决方案,应该在每次构建时运行。测试部分还包含一个数据库项目,该项目应在测试运行之前部署到 localDB。 SQL server 单元测试项目的配置是:

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

在我的本地机器上一切正常,但在 TFS 上失败并出现错误:

从配置文件中读取 SQL Server 单元测试设置时出错。单击测试项目,从 SQL 菜单中打开 SQL Server 测试配置对话框,将设置添加到对话框中,然后重新构建项目。

这些家伙假设测试在 TFS 2013 上运行良好,但在升级到 TFS 2015 后,我们开始收到此错误。尝试了在这里和互联网上找到的不同解决方案,但没有任何帮助。我错过了什么? 谢谢你。

【问题讨论】:

    标签: unit-testing tfs


    【解决方案1】:

    尝试使用另一个 SQL Server 实例(不是 localdb,使用另一个 SQL Server 实例对我来说很好)。

    另一方面,您使用的是 Windows 身份验证,因此请确保构建服务帐户具有目标 SQL Server 的足够权限(例如创建数据库)。

    【讨论】:

    • 我尝试使用另一个 SQL Server 实例(SQL Server 2014 和 SQL Express),但没有成功。还尝试使用服务帐户的权限并传递不同的凭据,而不是使用具有相同结果的 Windows 身份验证
    • @Andrew 你能从另一台机器连接到那个 SQL Server 吗?不同的凭证是否意味着 SQL 帐户(SQL 身份验证)?尝试将服务帐户更改为您的帐户并检查结果。
    • 感谢您的回复。 TFS 和 SQL 服务器都设置在我的本地计算机上,所以是的,我可以连接到 SQL 服务器。 “尝试将服务帐户更改为您的帐户”可能没有得到您的想法。
    • @Andrew 如果您使用 VNext 构建并作为服务运行,请打开服务 > 查找构建代理服务> 双击 > 选择登录 > 更改帐户。
    • 我对 TFS 设置不是很熟悉,但如果此服务是 VSO 代理,很遗憾,由于我们公司的安全政策,我无法更改服务登录。
    猜你喜欢
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 2015-07-17
    • 2015-08-15
    • 1970-01-01
    相关资源
    最近更新 更多