Visual Studio Online:如何使用访问远程服务器的MVC单元测试创​​建构建定义?

时间:2015-05-29 14:28:35

标签: sql-server unit-testing azure azure-devops tfs2013

我目前正在使用:

  • Visual Studio 2013 for development
  • 用于构建/测试的Visual Studio Online
  • MS Build
  • 用于存放MVC Web应用程序和SQL数据库的Azure VM

当前项目是一个带有MVC测试项目的N层MVC应用程序。该应用程序在Azure VM上运行(在云中),但可以通过成为公司域的一部分在本地访问。我创建了一些测试控制器操作的单元测试,它们在本地传递。当我使用VSO签入并构建项目时,单元测试失败并出现以下错误:

  

测试方法   Enrollment.StudentEnrollment.Tests.Controllers.HomeControllerTest.SearchWithNoTermOrFilterDefaultSort   抛出异常:System.Data.SqlClient.SqlException:与网络相关   建立连接时发生或特定于实例的错误   SQL Server。服务器未找到或无法访问。校验   实例名称正确且SQL Server配置为   允许远程连接。 (提供者:SQL网络接口,错误:26    - 找到指定的服务器/实例时出错

我假设此错误与VSO因为位于不同的域而无法访问VM有关,但可以在如何解决问题方面使用一些帮助。我希望能够通过VSO / TFS构建我的单元测试。

我希望这里的人比我在这个过程中有更多的经验,可以帮助我将VSO连接到远程服务器/远程SQL服务器。

我有一些想法,但我不确定此时如何处理它们:

  • 不同的连接字符串格式:当前数据源= vm20150201 \ apps
  • 我不知道的MSBuild定义命令或设置?
  • 用于将VM和VSO Online站点连接到同一域的Azure设置

其他想法:

  • 我应该设置存根,假货和模拟吗?
  • 如果我这样做,是否会确保我只测试控制器(使用假数据库)然后我应该用它自己的测试项目测试数据访问层?

谢谢

1 个答案:

答案 0 :(得分:1)

您的单元测试应该能够在不访问应用程序实例的情况下运行。否则它不是单元测试。

如果您想要有趣的集成测试,那么您应该避免在构建期间这样做。有一些工具是Visual Studio ALM(Microsoft测试管理器)平台的一部分来处理它。查看实验室管理标准环境。

如果您现在真的需要这样做,那么您可以将自己的本地构建服务器与VSO相关联。该本地构建服务器将位于您的网络上,并且可以访问相关服务器。