我的单元测试项目没有连接字符串 - 正在查询哪个数据库?

时间:2014-11-29 22:58:23

标签: mysql database entity-framework unit-testing entity-framework-6

我使用Web Api和EF创建了一个项目。

我已经设置了一些单元测试,它们调用几个控制器并将数据添加到数据库中(通过控制器)。

但是我无法看到数据保存到哪个数据库。我最初认为它将是我的真实项目的数据库,但事实并非如此。想想看,我的app.config文件中甚至没有连接字符串。

正在查询哪个数据库?我看到数据在测试中是持久的(测试1用Id1保存了一行,test2用Id2保存了一行等。)

在旁注中,我现在知道我不应该在我的单元测试中测试数据库,但我只是想知道在这里查询哪个数据库? (记得我没有连接字符串)

app.config的EntityFramework部分:

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>

我的新app.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="CH.Tests" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=CH.Tests.mdf;Initial Catalog=CH;Integrated Security=True" providerName="System.Data.SqlClient" />
  </connectionStrings>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v12.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Cors" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

我现在运行测试时遇到以下异常: 测试名称:TestMethod1 测试FullName:CH.Tests.UnitTest1.TestMethod1 测试源:c:\ Users \ Anders \ Dropbox \ Projects \ Chaser \ CH.Tests \ UnitTest1.cs:第23行 测试结果:失败 测试时间:0:01:28.2206481

结果讯息:

  

测试方法CH.Tests.UnitTest1.TestMethod1抛出异常:   System.Data.SqlClient.SqlException:与网络相关或   建立连接时发生特定于实例的错误   SQL Server。服务器未找到或无法访问。校验   实例名称正确且SQL Server配置为   允许远程连接。 (提供者:SQL网络接口,错误:50    - 发生本地数据库运行时错误。指定的LocalDB实例不存在。

0 个答案:

没有答案