我从DevGuide测试中了解到,ReSharper插件的工作原理如下:
但我需要以下方案。前两个步骤与上述步骤相同,然后:
我怎样才能做到这一点?
我需要它,因为我有一个代码使用ReSharper生成的AST来构建一些图形,我想测试的是正确构建的图形。
答案 0 :(得分:0)
是的,你可以这样做。您需要创建自己的测试基类,而不是使用提供的测试基类之一。
基类的层次结构,每个基类都添加了额外的功能。通常,您将从QuickFixAvailabilityTestBase
或QuickFixTestBase
中获取,这些内容会添加测试快速修复的功能。这些类将执行某些操作并将输出写入.tmp
文件,然后将其与.gold
文件进行比较。
这些类本身来自BaseTestWithSingleProject
,它提供了设置内存解决方案的功能,以及填充了您在测试中指定的文件的项目,或BaseTestWithTextControl
也为您提供了您正在测试的文件的文本控件。如果直接从这个类派生(或使用自己的自定义基类),则可以执行实际测试所需的操作,并在内存中断言,或将相应的文本写入.tmp
文件与.gold
进行比较。
您应该覆盖DoTest
方法。这将为您提供已设置的IProject
,您可以执行任何操作以测试扩展程序的功能。您可以使用project.Solution.GetComponent<>
来获取任何shell或解决方案组件,并使用ExecuteWithGold
方法执行某些操作,写入.tmp
文件并将ReSharper与.gold
进行比较档案给你。