如何在团队中共享ReSharper单元测试会话?

时间:2012-08-24 01:26:15

标签: visual-studio unit-testing resharper

我在Visual Studio 2010/2012中的ReSharper 7中设置了两个永久测试会话 - “传递”和“失败”。我每天运行Passing会话,并且可以快速识别自上次以来的任何回归失败,在这种情况下我将这些测试移动到Failing,在那里我可以在我有时间的时候处理它。它很有效,很棒。

问题在于,我找不到任何方法可以将这些会话导出为“解决方案团队共享”选项,如ReSharper docs中针对您可能希望在整个团队中共享的设置所建议的那样。显然,能够在相同的测试会话结构的时间内使用其他人是有益的。但是当我改变我的会话时,似乎只会更新'PatientPortal.sln.DotSettings.user'文件,而不是'PatientPortal.sln.DotSettings'文件。

在RESHARPER中 - >选项 - >单元测试,我已经选中了“保存并恢复单元测试会话”并选择了“保存到” - “解决方案[名称]团队共享”

由于我遇到的困难,我怀疑ReSharper单元测试会话不是为你办理登机手续并分享的,但在这种情况下,我觉得这样做很有成效,所以有人都知道怎么做?

3 个答案:

答案 0 :(得分:5)

保存unittest会话功能的开放票证:

<强> RSRP-275264 Add action to save unit tests session

我希望将来我们能够获得此功能。也许如果您投票或发表关于您的用例的评论会有所帮助。

答案 1 :(得分:1)

简短的回答是你是对的 - resharper测试会话旨在为每个用户保存,并保存在.sln.DotSettings.user文件中,并且.user文件不应该被签入。

对于大多数情况,我不确定在整个团队中分享是否有意义 - 如果我正在开设某个班级,团队中的其他成员不需要查看我的考试,因为他们不会在代码的相同区域工作,而是拥有自己的会话。在共享设置文件的这一部分上,敲门效应也会造成大量流失(以及冲突的高风险)。

为团队共享设置文件选择“保存到”只会导致将“保存和恢复单元测试会话”设置为共享设置文件。它不会导致会话本身被保存。

我没有花太多时间考虑它,但我怀疑你可以编写一个ReShaprer插件,将锁定的会话保存到团队共享设置中。 UnitTestSessionManager在创建或关闭会话时引发事件,IUnitTestSession接口公开GetPersistentInfo和RestorePersistentInfo,这将允许您获取要保存和加载的数据。这将是在适当的时间将数据持久保存到设置文件的情况。

我无法保证你不会在这个文件中出现冲突 - 我不知道元素在序列化时的顺序是什么,并且数据被序列化为相当密集的格式,所以更改会议可能很痛苦。

也许不同的工作方式会更好?这两个会话向您展示了您不会仅通过在单个会话中运行所有测试而得到的? ReSharper允许您显示刚刚通过或只是失败的测试。它是否真的有助于团队将测试分组为传递或失败?也许在以后需要修复的测试中添加类别?如果他们现在没有足够的重要性来解决它们,请忽略它们吗?现在修复它们吗?

答案 2 :(得分:1)

您应该使用类别。如果您使用的是NUnit,则可以使用CategoryAttribute将类别标记为测试或测试夹具,如下所示:

[Category("Failing")] public void MyTestProc() ...

您可以为一个测试指定多个类别(只需多次使用属性)。然后转到ReSharper | Unit Tests | Unit Tests并选择Group by -> Categories(或类似的内容,不记得确切)。选择您的类别,然后按工具栏中的Run selected tests按钮。