使用Visual Studio单元测试框架,我正在考虑两个选项:
Assert.AreEqual(myObject.GetType(), typeof(MyObject));
Run Code Online (Sandbox Code Playgroud)
和
Assert.IsInstanceOfType(myObject, typeof(MyObject));
Run Code Online (Sandbox Code Playgroud)
这两个选项之间有区别吗?一个比另一个更"正确"吗?
这样做的标准方法是什么?
我们被要求从NUnit迁移到MSTest,现在必须将所有现有测试转换为新平台.大多数转换得很好但我们有参数化测试的问题.我们发现以下网站显示了如何编写扩展并下载了代码.
但是,虽然它编译得很好,但RowTestClass测试都无法运行,并显示以下错误消息:
"无法初始化单元测试扩展'urn:RunAsTestClassAttribute':未为以下属性注册单元测试扩展:Microsoft.VisualStudio.Test.Sample.UnitTestTypeExtension.RunAsSample.RunAsTestClassAttribute."
我们正在使用VS2010(10.0.40219.1 SP1Rel)(Microsoft .NET Framework版本4.0.30319 SP1Rel)
我想知道它是否与以下库有关:
Microsoft.VisualStudio.QualityTools.Common.dll
Runtime Version: v2.0.50727
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.VisualStudio.QualityTools.Common.dll
Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
Runtime Version: v4.0.30319
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
Microsoft.VisualStudio.QualityTools.Vsip.dll
v4.0.30319
C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.Vsip\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.Vsip.dll
Run Code Online (Sandbox Code Playgroud)
任何帮助使这项工作非常感谢.
c# unit-testing visual-studio-2010 visual-studio vs-unit-testing-framework
我想在C#中为所有代码路径测试以下方法.
public int foo (int x)
{
if(x == 1)
return 1;
if(x==2)
return 2;
else
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我已经看到这个pex单元测试测试了多个输入.如何创建接受多个输入的单元测试?
[TestMethod()] //some setup here??
public void fooTest()
{
//some assert
}
Run Code Online (Sandbox Code Playgroud)
我想避免为每个输入创建一个测试方法.我正在使用Visual Studio 2010/2012和.Net 4.0
c# unit-testing visual-studio-2010 vs-unit-testing-framework
我试图在asp.net MVC4应用程序上运行Coded-UI测试项目.该应用程序包含涉及的各种ajax调用.当我手动测试它,它工作正常,但当我使用编码ui测试项目测试它时,它会中断,因为在ajax调用中,回调函数不会被调用.谁能告诉我这里我缺少什么?提前致谢.
asp.net-mvc jquery nunit jquery-ui vs-unit-testing-framework
关于VS2013设置的快速问题 - 是否有一种方法可以禁用VSTEST Discovery引擎在构建时/之后启动?
我之前从未将此过程作为VS2013的子过程运行,但是我最近在VS2013中创建了一个单元测试项目用于演示,现在我加载的每个解决方案(无论是否有单元测试项目)每当我构建一个项目时,vstest.discoveryengine.x86.exe就会运行.
有没有办法把它关掉?我已经在测试菜单中关闭了"测试 - >保持测试执行引擎"选项,即使使用taskkill pre和post build事件也不会阻止它运行(它似乎在成功构建后重新生成,在post-之后建立事件).
我总是可以手动删除或重命名文件,但我想知道是否有人知道VS2013中的设置或选项将其关闭而不是实际上重新命名/删除文件的麻烦,这可能会导致VS2013更新中断. ..
在此先感谢您的回复!
我在使用MSTest
我使用命令mstest /testsettings:local.Testsetting /testcontainer:folder\obj\Debug\test.dll
这是输出,
运行具有以下问题:警告:测试运行部署问题:程序集或模块'Microsoft.Practices.未找到由测试容器'test.dll'直接或间接引用的Prism.警告:测试运行部署问题:未找到测试容器"test.dll"直接或间接引用的程序集或模块"Project.Common.dll".警告:测试运行部署问题:未找到测试容器"test.dll"直接或间接引用的程序集或模块"Project.Infrastructure.dll".警告:测试运行部署问题:程序集或模块'Microsoft.Practices.未找到由测试容器'test.dll'直接或间接引用的Prism.
我能做什么让MSTest运行良好.
我的解决方案中有3个项目.
每当我尝试在任何项目中调试单元测试时,VS2010就会启动3(每个项目1个)ASP.net开发服务器.
我遇到的问题是VS2010需要很长时间才能启动这些开发服务器,因此我在尝试调试单元测试时花了很多时间等待.
我不确定为什么VS2010这样做......有正当理由吗?有没有办法阻止这些开发服务器在调试单元测试时启动?
asp.net visual-studio-2010 visual-studio vs-unit-testing-framework aspnet-development-server
我有一个相当小的C#解决方案,里面有大约5个项目.我正在使用Visual Studio 2012和Update 4,以及Resharper 8.1(build 8.1.23.546).这是一款带有SSD和16GB RAM的I7,拥有大量磁盘空间.这台机器的性能非常出色.
我已经将R#设置为我的单元测试运行器,并且我注意到,只要我运行任何单元测试(一个或多个,通过或失败,没有区别),Visual Studio文本编辑器几乎无法使用.键入编辑器窗口会遭受如此极端的延迟(击键之间最多1秒),这会完全打破开发流程.有时候我实际上不得不停止打字让键盘赶上来让我可以在Intellisense中查找一些内容.
问题一直存在,直到我关闭然后重新打开VS,此时一切都很好.直到我再次进行单元测试.然后又回来了.
我运行进程监视器,看看是否有任何东西(它没有),我已经尝试了各种各样的东西,如清理各种缓存,临时asp.net文件,重置设置,一切都没有效果,实际上基本上几乎所有在Google搜索结果中显示的选项都非常慢
然而,消除过程确实最终缩小了一切与Resharper,特别是测试运行员的问题.
然后我尝试了R#性能优化技巧,如此处所述- 加速Resharper的终极指南,唯一有效的(多次重启后)是禁用单元测试运行器.
我已经禁用了R#测试运行器,并恢复到内置的VS(我讨厌),问题立即消失了.一旦我重新启用R#测试运行器,问题就会出现.
有没有其他人遇到过这个问题,并找到了解决方案?
干杯:)
resharper vs-unit-testing-framework visual-studio-2012 visual-studio-test-runner resharper-8.1
我的单元测试源信息并排显示,而不是在测试下方:

如何移动它以使测试显示位于测试下方,而不是旁边?
有趣的是,当我实际调试单元测试时,测试资源管理器正确显示:

我有一堆单元测试我正在测试,我把断点放在unitest代码上,当我运行CTL+R,T而不是停在断点上它只是执行代码,我试图调试unittest代码因为它失败...任何救命?
我正在使用VS 2010专业版