- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个单元测试项目,在许多测试中仍然使用“旧式”私有(private)访问器。由于它们是维护的噩梦,我们正在努力摆脱它们,并转向新的 Microsoft Fakes 框架,并在需要时使用 Shims。
最近我们编写了一些使用 Shims 的新单元测试,并注意到由于某种原因,这导致一些其他未修改的旧测试运行速度相当慢。较慢的意思是受影响测试的运行时间约为 10 秒而不是 900 毫秒。不过,单独运行受影响的测试似乎没有这种效果——只有在使用 Shims 测试后运行它们时才会发生这种情况。
最初我们认为这可能只是由于初始化问题,导致测试相互影响。然而,经过一些实验,我们发现即使没有实际添加任何新的测试代码,速度也会变慢。只需在其中一个减慢的测试之前添加以下代码片段,就会导致测试运行速度变慢的相同效果:
using (ShimsContext.Create()) {}
调试似乎表明被测试的代码确实运行得慢得多(而不是单元测试代码本身),但我们无法确定是哪一部分。我们无法确定为什么这些测试会受到影响而其他测试不会受到影响。此时我们尝试分析这些测试(使用 VisualStudio 中新的“分析测试”选项)。然而,事实证明由于某种原因无法使用 Shims 进行分析测试。抛出以下异常:
Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationException: UnitTestIsolation instrumentation failed to initialize. Please restart Visual Studio and rerun this test
作为最后的手段,我们还尝试将所有使用 Shims 的测试移动到同一解决方案中的单独测试项目。这似乎确实有所帮助,所有测试运行时间都恢复正常。我们使用测试播放列表在其他项目之前运行每个项目的测试,并且在这两种情况下运行时间都不错。不过,这并不是真正的解决方案,感觉更像是在规避实际问题。所以,我们不确定如何进行。任何想法和想法都会有所帮助。
谢谢。
最佳答案
Microsoft 文档 Better Unit Testing with Microsoft Fakes (RTM).pdf 指出,使用 Shims 时您会看到性能下降。
本文还介绍了垫片对性能的影响: http://technet.microsoft.com/en-us/windows/jj863250.aspx
关于c# - 在其他测试中使用 Microsoft fakes 时单元测试变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19536380/
我在尝试从单独的项目中引用 mscorlib fake DLL 时遇到问题,如下所述。 我有许多 VS12 解决方案,我正在使用 MS Fakes 为其编写单元测试。根据以下 URL 中的建议,我决定
我在使用 Microsoft fakes 的解决方案中有一个单元测试项目,当我构建它时出现以下错误。它提示无法加载的 DLL 在磁盘上。我已经打开了 Fusion 日志记录,这表明绑定(bind)成功
是否可以设置一个 Target,在 Build Target 完成后在远程创建并推送一个 git 标签? 感谢您的帮助。 最佳答案 我使用了以下似乎有效的方法 Target "TagBuild" (f
我已经使用 Django 大约 2 年了,有一个功能我一直害怕使用:伪造迁移 . 我几乎到处都看过,我能得到的最多信息来自 documentation它指出: --假 Tells Django to
我将在我的单元测试中使用 Microsoft.Fakes。我读了一个tutorial Microsoft.Fakes 在其中为接口(interface)创建了一个 stub (在解决方案中实现),但在
我使用 VS 2015 U1。 我使用带有奇怪版本控制的外部库 - 1.0.4056.40164 . 我为这个库添加了一个 .Fakes 文件。当构建 fakes 程序集时,我收到以下警告: C:\S
单元测试项目 Up.UnitTests 在构建期间失败,并出现此构建错误 错误 CS0430:未在/reference 选项中指定外部别名“snh”错误 CS0234:命名空间“snh”中不存在类型或
有没有一种简单的方法可以让我使用 FAKE 获取正在执行的 .fsx 文件的路径? Powershell 和 (psake) 的使用性质和 MSBUILD 提供了此功能,但作为 FAKE/F# 菜鸟,
因此,在我正在构建的光线追踪器中,我已经获得了适用于球体的折射以及焦散效果,但是玻璃球看起来并不是特别好。我相信折射数学是正确的,因为光线似乎在以您期望的方式反转时弯曲,但它看起来不像玻璃,它只是看起
在VS中,通常在Build(增量式)和Rebuild之间进行区分,后者将先进行清理,然后再执行与Build相同的操作。我可以使用FAKE提供类似的行为吗? 让我们假设以下目标: Target "Cle
作为解决方法,我需要更改某个 Java 程序的系统时钟,而不触及代码才能获取: calendar.getinstance().get(calendar.year) = 2013 是否可以仅通过启动配置
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
当类库引用 Visual Studio 2013 下针对 .Net 4.5 和 Silverlight 5 的 PCL(可移植类库)时,我无法为类库 (.NET 4.5) 生成 Microsoft F
我正在尝试使用 FAKE 来构建位于多个子目录中的 F# 文件。 filesInDirMatching来自 FAKE。 #r @"packages/FAKE/tools/FakeLib.dll" op
这与我提出的最后几个问题无关。 我需要从 IP 网络摄像头 (SNC-RZ25N) 获取视频到 Flash Media Server。我宁愿不必使用 Windows,但如果它使事情变得更容易,我会的。
在 FAKE你通常有一个像这样的构建脚本: // "foo.fsx" #r @"./packages/tools/FAKE/tools/FakeLib.dll" open Fake Target "F
Django迁移中的--fake-initial和--fake有什么区别?使用假迁移有什么危险?有人知道吗非常感谢大家。 我正在使用Django 1.10 最佳答案 好吧,文档对此很清楚 --fake
我正在为一个项目构建一个模板,它目前没有构建服务器端。我需要测试我的表单和验证,并想要“伪造”表单提交。 我正在尝试这个: $("#save").click(function(e) { e.pre
考虑以下因素: #r @"FakeLib.dll" open Fake open Fake.StringHelper open Fake.ProcessHelper Shell.Exec("mkdir
我是一名优秀的程序员,十分优秀!