- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Team Foundation Service 上设置自动构建和测试,但无法让测试连接到我的 Azure 数据库,因此我的测试不断失败。
构建进展顺利,但任何导致站点连接到我的数据库的测试都会失败。我在 Azure 上设置数据库并将其与我的 Azure 站点关联。我配置了数据库允许的 IP 地址以包括我的本地计算机,并将其设置为允许 Azure 服务连接。该网站在我的计算机上本地运行,发布到我的 Azure 网站时也可以运行,并且从两个地方都可以很好地连接到 Azure 数据库。
我使用 Team Foundation Service ( https://tfs.visualstudio.com/ ) 进行源代码管理,并在 Team Foundation Service 中设置了自动构建,并从这些构建持续部署到 Azure。所有其他方面都工作正常,源代码控制,在 checkin 时开始构建,构建部署到我的 Azure 站点,但我的测试都没有通过。
错误消息:
在代码优先 EF 的项目上:
Test method MySite.Tests.Controllers.HomeControllerTest.Index threw exception: System.Data.SqlClient.SqlException: CREATE DATABASE permission denied in database 'master'.
在数据库优先的 EF 项目上:
Test method tfstest4.Tests.Controllers.HomeControllerTest.Index threw exception: System.InvalidOperationException: No connection string named 'TestDbContext' could be found in the application config file.
(请注意,连接字符串确实存在,并且在本地以及部署到 Azure 后都可以正常工作)
非常感谢有关在需要数据库访问的 Team Foundation Service 上运行单元测试的任何建议。
最佳答案
如果您正在运行自动化单元测试,我的建议是删除对数据库的任何依赖项,因为您没有理由测试 Entity Framework 。我个人会做的是将我的数据库层隐藏在某种形式的存储库接口(interface)后面,并在运行测试时使用某种形式的依赖项注入(inject)策略或工厂模式提供一些模拟实现。
如果您还运行自动化集成测试,那么涉及数据库可能更有意义。您的连接字符串可能不存在于测试项目的配置中。我不确定您如何告诉 EF 使用哪个连接字符串,但我建议避免直接依赖于设置条目。
如果您使用 EF Code First,则可以将连接字符串作为参数提供给 DbContext 类的基本构造函数。例如,您可以将连接字符串放入静态属性中,并在实例化数据库上下文时获取它
public static class MyConnectionStringProvider
{
public static string ConnectionString{ get; set; }
}
public class MyDbContext : DbContext
{
public MyDbContext()
: base(MyConnectionStringProvider.ConnectionString)
{ }
}
现在,在应用程序启动和测试设置例程中的某个时刻,您可以设置连接字符串。这允许您控制要使用的连接字符串。
例如,如果您正在运行 azure 网站,您通常会在 Application_Start 方法中从角色配置而不是 app.config 文件中获取连接字符串。
MyConnectionStringProvider.ConnectionString =
RoleEnvironment.GetConfigurationSettingValue("MyConnectionString")
在你的测试类中,你可以做一些完全不同的事情
MyConnectionStringProvider.ConnectionString = "[connectionstring to my test database]"
最后,可能存在一些防火墙问题需要解决,因为您可能需要在 SQL Azure 服务器防火墙中为运行测试的计算机添加异常(exception)。如果有必要,我会联系微软支持人员。
关于azure - Team Foundation 服务自动构建和测试数据库错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15060536/
我想加载带有本地回退的 foundation.min.js 的 CDN 版本。问题是:如何检测是否加载了 foundation.js? 我看到它是用 jQuery、modernizr、Bootstra
我从 v3 开始就一直在使用 Foundation,所以我没想到会出现这种困惑。 在这种特殊情况下,我需要一个固定宽度的左列(大 3),然后是一个流动/响应内容列(大 9)作为其余部分。
我在从最新的 Foundation 定制 Orbit 时遇到问题。来自 the docs : Orbit 选项此时只能在初始化时传入。 { timer_speed: 10000, animat
在以下非常基本的示例中,开关可以正常工作并且样式正确。如果我只是将 foundation.css 版本从 5.5.2 更改为 6.0.5,切换样式就会丢失。为什么开关在 Foundation 6.0
如何禁用中/小屏幕的顶部栏折叠? 我按照 Here 中的说明进行操作但无论我将最小宽度设置为什么,我都会得到相同的结果。 最佳答案 如果您使用的是 SCSS 版本,那么您可以修改断点。 $topbar
出于多种原因,复选框在最新的 Foundation (4.1.6) 中存在问题。有没有一种简单的方法可以阻止 Foundation 接管它们?我需要 custom我的类 form s 其他原因。我如何
我希望在显示模式窗口中播放的视频在模式窗口关闭时停止播放(谁不呢?)。通过将 iframe 源设置为空,可以使用 jQuery 轻松完成此操作。 但我不知道如何让它在回调中工作。模态窗口本身按预期运行
我最近开始将 Zurb Foundation 4 用于 Asp MVC 网站,但我不太明白开关控件应该如何工作。文档没有说太多 http://foundation.zurb.com/docs/comp
是否可以合并top-bar和 tab-bar ( Canvas 外)? 这个: 调整到手机尺寸时变成这样: 但我还想包括标签栏( Canvas 外)所以它变成这样 我无法想象这是如何做到的,我试图制作
我的问题是,在桌面上我喜欢先有菜单,然后是最右上角的标志。目前,当我将模板缩小到移动版本时, Logo 位于菜单下方,这并不令人满意。我想在菜单之前吃。我试过使用推/拉没有成功。 在移动 View 中
我直接从他们的网站 https://foundation.zurb.com/sites/docs/top-bar.html 复制了基础导航栏语法并且下拉菜单功能似乎不起作用 代码如下:
刚刚切换我的 Rails 项目以测试 Zurb Foundation 5,现在切换顶部栏菜单不起作用。 当视口(viewport)很小时,顶部栏菜单项消失并且菜单图标像以前一样显示,但是当我单击菜单图
如何在 Foundation 4 中以编程方式显示模态? 在 Foundation 3 中,我们有易于使用的 reveal() 方法。 您可以在 Foundation 4 中使用什么?请帮忙。 最佳答
我正在使用启用了 flexbox 的 Foundation 6 Zurb 模板,但按钮组的扩展功能不起作用。 当我添加扩展类时,最后一个按钮不会填满最后一个空格并掉到左侧的下一行。文本不再内联,按钮的
我正在使用 Zurb Foundation 并具有以下 html: Tab 1 Content of section 1. Tab
我正在尝试使用 zurb Foundation 5 显示模式。但是当我单击按钮时它不起作用并且无法打开。我正在使用这个 html 代码。 index Awesome. I ha
有什么我可以在命令行中输入的东西来找出我正在运行的版本吗? 最佳答案 在不了解您的具体情况的情况下,最简单的方法是在初始化 Foundation ( $(document).foundation();
Foundation 5 上曾经有一个“圆形”类,可以将按钮组转换为具有圆形边缘。我如何在 Foundation 6 中执行此操作? 最佳答案 这在 Foundation 6 中是不可能的。为了减小文
我正在使用 Zurb 的 Foundation 4.2.3,但是当我打印页面时,网格布局始终没有得到维护。 例如, XXX Lorem
作为 Zurb's Foundation 一部分的轨道 slider 好像加了一个类hide-for-small到导航。 我需要导航仍然显示,以便显示我的内容。我试过删除 hide-for-small
我是一名优秀的程序员,十分优秀!