【问题标题】:SSDT Unit Test:. An error occurred while SQL Server unit testing settings were being read from the configuration fileSSDT 单元测试:。从配置文件中读取 SQL Server 单元测试设置时出错
【发布时间】:2014-11-12 21:09:27
【问题描述】:

我在 Visual Studio 2013 Professional 中创建了一个数据库项目。然后通过右键单击其中一个存储过程并选择创建单元测试来添加单元测试。选择创建一个新的VB测试项目。然后右击新建的测试项目选择SQL Server Test Configuration,选择localdb数据库,配置好需要部署的项目。 重建解决方案,运行所有测试(两个测试)。测试总是因为这个错误而失败:

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

堆栈跟踪: 在 Microsoft.Data.Tools.Schema.Sql.UnitTesting.SqlDatabaseTestService.OpenProcessConfig() 在 Microsoft.Data.Tools.Schema.Sql.UnitTesting.SqlDatabaseTestService.DeployDatabaseProject() 在 *************.Tests.SqlDatabaseSetup.InitializeAssembly(TestContext ctx) 在 C:\Projects********************* .Tests\SqlDatabaseSetup.vb:第 15 行

【问题讨论】:

  • 你把数据库部署到localdb了吗?数据库单元测试与 c# 单元测试有很大不同,因为 db 单元测试必须针对数据库执行(而 c# 测试可以在内存中执行,只需构建解决方案即可)。
  • 这解释了您收到的错误。
  • @Nick 我认为在修复部署错误之前需要修复一个错误。在下面检查我的答案。

标签: sql-server vb.net unit-testing visual-studio-2013 sql-server-data-tools


【解决方案1】:

似乎是由 VS 2013 生成的 app.config 是空的。我在网上做了一些研究和大量尝试和错误,并附带了以下 app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="system.data.localdb" type="System.Data.LocalDBConfigurationSection,System.Data,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"/>
    <section name="SqlUnitTesting_VS2013" type="Microsoft.Data.Tools.Schema.Sql.UnitTesting.Configuration.SqlUnitTestingSection, Microsoft.Data.Tools.Schema.Sql.UnitTesting, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </configSections>
  <system.data.localdb>
    <localdbinstances>
      <add name="(localdb)\ProjectsV12" version="12.0" />
    </localdbinstances>
  </system.data.localdb>
  <SqlUnitTesting_VS2013>
    <DatabaseDeployment DatabaseProjectFileName="..\..\..\Database_Project_Name\Database_Project_Name.sqlproj"
        Configuration="Debug" />
    <DataGeneration ClearDatabase="true" />
    <ExecutionContext Provider="System.Data.SqlClient" ConnectionString="Data Source=(localdb)\ProjectsV12;Initial Catalog=Database_Name;Integrated Security=True;Pooling=False;Connect Timeout=30"
        CommandTimeout="30" />
    <PrivilegedContext Provider="System.Data.SqlClient" ConnectionString="Data Source=(localdb)\ProjectsV12;Initial Catalog=Database_Name;Integrated Security=True;Pooling=False;Connect Timeout=30"
        CommandTimeout="30" />
  </SqlUnitTesting_VS2013>
</configuration>

现在我收到以下错误: 无法部署数据库项目 C:\Projects\Database_Project_Name\Database_Project_Name\Database_Project_Name.sqlproj。但这似乎是因为我的数据库依赖于其他数据库,我需要将其他数据库与我的数据库一起部署。

【讨论】:

  • 数据库部署成功后,使用上面的 app.config 运行测试
  • 现在试运行成功:)
猜你喜欢
  • 2021-08-01
  • 2013-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多