7

I have set up two permanent test sessions in ReSharper 7 in Visual Studio 2010/2012 - "Passing" and "Failing". I run the Passing session daily and can quickly identify any regression failure since the last time in which case I move those tests into Failing, where I can work on it when I get time. It works and it's great.

The problem is that I can't find any way to export those sessions as a "Solution Team-Shared" option, as suggested in the ReSharper docs for settings you might want to share across a team. Obviously, it'd be beneficial to be able to have others in the time avail of the same test session structure. But when I change my sessions, it only ever seems to update the 'PatientPortal.sln.DotSettings.user' file, not the 'PatientPortal.sln.DotSettings' one.

In RESHARPER -> Options -> Unit Testing, I have checked 'Save and restore Unit Test Sessions' and have selected Save-To - 'Solution [name] Team-shared'

Because of the difficulty I'm experiencing, I suspect that ReSharper unit test sessions are not designed to be something you check-in and share, but I'd find it productive to do so in this case, so does anyone know how to do this?

4

3 回答 3

6

有一个保存单元测试会话功能的开放票:

RSRP-275264 添加操作以保存单元测试会话

我希望我们将来会得到这个功能。如果您投票或发表有关您的用例的评论,也许会有所帮助。

于 2014-03-25T10:34:08.697 回答
2

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

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

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

于 2012-08-26T09:54:25.830 回答
1

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

对于大多数情况,我不确定在团队中共享是否有意义——如果我正在 TDD 某个课程,团队中的其他成员不需要看到我的测试,因为他们不会在代码的相同区域,而是有自己的会话。在共享设置文件的那部分,连锁反应也将导致大量流失(以及高风险的冲突)。

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

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

不过,我不能保证您不会在此文件中遇到冲突 - 我不知道元素在序列化时的顺序,并且数据被序列化为非常密集的格式,因此更改会话可能会很痛苦。

也许不同的工作方式会更好?哪两个会话向您展示了仅通过在一个会话中运行所有测试是无法获得的?ReSharper 允许您显示只是通过或失败的测试。它真的有助于团队将测试分组为通过或失败吗?也许为您以后需要修复的测试添加类别?如果它们不够重要而无法立即修复,请将它们标记为忽略?立即修复它们?

于 2012-08-24T09:41:13.060 回答