问题 Karma for Visual Studio? [关闭]


我是连续测试产品的忠实粉丝 Infinitest。最近我一直在做更多的JavaScript开发,并且正在寻找类似于Visua Studio的东西,它将在保存文件后立即运行我的Jasmine测试。 强大的麋鹿 看起来它只适用于.NET代码。我喜欢背后的想法 因果报应,但理想情况下它将与Visual Studio 2012很好地集成。

有这样的野兽吗?


5407
2017-09-30 23:21


起源

最“最新”的VisualStudio扩展程序似乎是从2015年开始,可在此处找到: github.com/MortenHoustonLudvigsen/KarmaTestAdapter - Stefan
现有的扩展程序对我来说效果不佳。因此,我决定使用Gulp任务,外部命令和解决方案资源管理器的自定义上下文菜单的组合。 Gulp和Karma的结合非常强大。例如,它允许实现自定义监视模式或仅测试具有本地更改的文件。 - Stefan
以下是Resharper对Karma支持的相关公开问题: youtrack.jetbrains.com/issue/RSRP-386732 - Stefan


答案:


如果你想使用Karma,我已经创建了一个你可能会觉得有用的Visual Studio扩展。您基本上使用Karma,但启用了XML报告器;然后是一个VS扩展,它监视该XML文件并在Test Explorer窗口中显示结果。

我的博客上有一段视频(包括文字说明): http://blog.dantup.com/2014/03/cross-browser-javascript-testing-with-karma-and-visual-studio/

欢迎反馈!


12
2018-03-09 11:21



我要试试! :) - gustavodidomenico
叹。仍然依赖于“运行后测试”,这也是专业版中没有的VS Ultimate / Premium功能。 - roufamatic
@roufamatic是的,这是一个MS限制我IBT知道的方法:( - Danny Tuppeny
这似乎有效。谢谢。我将目标条目更改为<InstallationTarget Id =“Microsoft.VisualStudio.Community”Version =“[14.0]”/>,安装完成。是否可以从Visual Studio中启动Karma(例如从测试资源管理器中)或者我是否必须使用控制台? - Stefan
@nagates看到上面的评论 - 你可以解压缩/修改/重新压缩vsix以便在2015年安装。我担心我现在还没有维护扩展。 - Danny Tuppeny


Karma runner集成有一个VS扩展(在VS Output窗口中显示Karma结果): http://visualstudiogallery.msdn.microsoft.com/02f47876-0e7a-4f6c-93f8-1af5d5189225


2
2017-12-03 08:18



现在也可以与Test Explorer窗口集成! :) blog.dantup.com/2014/03/... - Danny Tuppeny


如果你想在保存后自动运行javascript单元测试 测试 在Visual Studio中,您可以使用“Chutzpah”。

http://visualstudiogallery.msdn.microsoft.com/f8741f04-bae4-4900-81c7-7c9bfb9ed1fe

PS。 这对JS测试很有用。但如果您想测试DOM操作,则需要某种Web驱动程序。

编辑:

如果将test explorer设置为在build上运行,则保存test.js文件将导致测试运行。保存引用的javascript本身不会。


1
2017-10-03 08:47



如何配置chutzpah自动运行测试?我在测试资源管理器中看到了测试,但仍然需要点击它们才能执行某些操作。 - roufamatic
@roufamatic在Test Explorer面板的左上角,在标题“测试资源管理器”的下方,您将看到一个带有图标的按钮,该按钮看起来是一个Refresh和Play / Execute的组合。如果你将鼠标悬停在它上面,它会说......“运行后运行测试”。当此按钮处于活动状态时,每次保存文件时都将运行测试。 - Gary O. Stenstrom
该按钮仅适用于VS 2012 Ultimate!它不在专业版中。 GRRRRRRRRR。 - roufamatic
好吧,我有高级版的按钮,如果这对您有用。它比终极便宜一点:) - VeteranCoder
我会告诉我的老板,但我不认为他会这样做,这是小偷。 #自雇 - roufamatic


对于自动构建,您可以使用以下nuget包,它将使用karma和grunt运行您的jasmine测试。 因此,只要您在构建计算机上安装了nodejs,它就应该运行您的单元测试。

https://www.nuget.org/packages/KarmaGruntJSUnit.MSBuild/ 

谢谢


0
2017-10-16 04:59



如果您更喜欢使用Gulp而不是Grunt,以下是一些示例: stackoverflow.com/questions/26552729/karma-run-single-test/... - Stefan