有没有可能通过某种方式链接或使用一些约定,以便我可以在给定类的单元测试之间跳转?
同时,为接口和实现之间的跳转创建快捷方式?
(键盘快捷键)
例:
IUserService UserService UserServiceTests
如果我能够将它们链接在一起,那么当我在其中任何一个文件中时,我就可以跳转到任何一个文件。
如前所述,您可以使用TestCop ReSharper插件(gallery link)来完成此操作。
它通过使用正则表达式识别类名和命名空间,将被测试的类与测试夹具绑定。您可以根据需要自定义这些内容,但我发现在现有代码上正确设置这些内容需要进行相当量的试验和错误。
设置完成后,您可以使用键盘快捷键来来回切换。它还可以为您创建TestFixture或类等功能。
[Subject(typeof(MyCoveredClass))]
这很方便,因为此属性内的用法非常明显,导航到它们会直接引导您到测试类的声明。[TestProperty("TestKind", "MyCoveredClass")]
。为了找到MyCoveredClass
的这种用法,您必须使用ReSharper的“高级查找用法”,并打开“文本出现”选项。ReSharper没有特定的Goto Test/Code功能,除了通过导航到用法列表。
然而,TestDriven.NET有这个功能,它使用命名约定来查找测试/代码对等项,以便您可以来回切换。
此外,创建快捷方式以在接口和实现之间跳转?
ReSharper具有此功能。使用Visual Studio方案:
Ctrl + U和Ctrl + Alt + B分别是ReSharper 2.x / IDEA方案的等效方法。
您可以使用ReSharper扩展TestCop
该插件旨在与mstest和nunit一起使用,但应该可以与任何其他需要您分配测试属性的单元测试框架一起使用。
我认为仅凭 ReSharper 是不可能实现这个的。就 ReSharper 而言,你的单元测试只是 UserService 的另一种使用方式。
此外,所有不同的单元测试框架都有不同的规范,所以很难知道具体情况。例如,进行 BDD 将产生与被测试的类(们)几乎没有关系的测试类名称。
也许你可以编写一个扩展来实现这个功能,可能使用属性或其他方法?不确定。
使用 ReSharper 和 NUnit,要从测试转到目标,您可以使用 TestFixture
属性的 TestOf
。只需在测试文件中 Ctrl + 单击 MyClass
:
[TestFixture(TestOf = typeof(MyClass))]
public class MyClassTest
要从主题跳到测试,请使用 ReSharper 的查找用法命令。