是否有可能以某种方式链接或使用某些约定,以便我可以在给定类的单元测试之间跳转?
另外,在界面和实现之间创建快捷方式?
(键盘快捷键)
示例:
IUserService UserService UserServiceTests
如果我能以某种方式将这些链接在一起,那将是很棒的,所以我可以在其中任何一个文件中跳转到任何这些文件。
答案 0 :(得分:6)
我刚刚在TestLinker中实现了该功能,这是一个ReSharper 2016.1扩展。它可以从ReSharper Gallery安装。
答案 1 :(得分:2)
是否有可能以某种方式链接或使用某些约定,以便我可以在给定类的单元测试之间跳转?
要在给定班级的单元测试之间跳转,请在班级名称上启动ReSharper的查找用法,并且只要在查找结果工具窗口中显示结果,将它们组合在一起,有助于关注代码库特定部分的用法 - 例如,按项目和类型。这将检测您的测试项目中的用法。从那里,您可以快速从查找结果跳转到代码中的实际用法。作为替代方案,您可以使用ReSharper的转到符号用法以类似方式工作,但在弹出菜单中显示搜索结果,而不是将其刷新为查找结果 。
如果您的测试类包含显示他们所涵盖的业务逻辑的元数据,这将有助于更好地区分您需要的用法。例如,如果您正在使用MSpec,则测试类将使用 Subject 属性进行标记:[Subject(typeof (MyCoveredClass))]
这很方便,因为此属性中的用法非常明显,导航到它们会直接导致您声明您的测试类:
使用NUnit和MSTest,这有点复杂,因为它们的属性将字符串作为参数,如:[TestProperty("TestKind", "MyCoveredClass")]
。为了找到MyCoveredClass
的这种用法,您必须使用ReSharper的查找高级用法并启用文本事件选项。
另外,创建用于在界面和实现之间跳转的捷径?
至于在继承链中跳转,ReSharper提供了多种选项来实现,包括类型层次结构(ReSharper>检查>类型层次结构)和转到实施 (ReSharper>导航>转到实施):
答案 2 :(得分:2)
正如已经提到的,您可以使用TestCop ReSharper插件(gallery link)执行此操作。
它通过使用正则表达式来识别类名和命名空间,从而将被测试的类与测试夹具联系起来。您可以自定义这些以满足您的需求,但我发现在现有代码上有相当多的试验和错误。
一旦完成所有设置,您就可以使用键盘快捷键来回移动。它也可以为你创建TestFixture或类。
答案 3 :(得分:1)
除了浏览使用列表之外,ReSharper没有特定的Goto测试/代码功能。
但是,TestDriven.NET has this feature使用命名约定来查找测试/代码对等体,以便您可以来回翻转。
另外,创建用于在界面之间跳转的快捷方式 实现
ReSharper具有此功能。使用Visual Studio方案:
Ctrl + U和Ctrl + Alt + B分别与ReSharper 2.x / IDEA方案等效。
答案 4 :(得分:0)
我认为只有resharper才能做到这一点。就resharper而言,您的单元测试只是UserService的另一种用法。
另外,所有不同的单元测试框架都以不同的方式指定事物,因此很难知道。例如,执行bdd将产生几乎完全与被测试的类无关的测试类名。
您可以编写扩展程序来执行此操作,也许使用属性或其他内容?不确定。
答案 5 :(得分:0)
您可以使用ReSharper Extension TestCop
此插件专为与mstest& nunit但应该与任何其他要求您分配测试属性的unittest框架一起使用。
答案 6 :(得分:0)
使用ReSharper和NUnit,要从测试跳转到主题,您可以使用TestOf
属性的TestFixture
属性。只需按住Ctrl键并单击测试文件中的MyClass
:
[TestFixture(TestOf = typeof(MyClass))]
public class MyClassTest
要从主题跳转到测试,请使用ReSharper 查找用法命令。