[英]ReSharper SDK test for Context Action doesn't work
我嘗試使用ReSharper SDK內置的測試基礎結構來測試自定義的ReSharper Context Action。 我已經創建了一個輸入文件,一個輸出文件( .gold
)並運行測試。 發生兩個問題:
.gold
文件完全不同或為空等); .tmp
文件與輸入文件和.gold
文件一起出現。 但是,如果我重命名輸入文件,則測試運行會失敗,並出現“文件不存在”異常。
我的測試項目的結構與docs中描述的相同。
TestEnvironment.cs:
[assembly: RequiresSTA]
[ZoneDefinition]
public class TestEnvironmentZone : ITestsZone, IRequire<PsiFeatureTestZone>
{
}
[SetUpFixture]
public class ReSharperTestEnvironmentAssembly : ExtensionTestEnvironmentAssembly<TestEnvironmentZone>
{
}
測試類別:
[TestFixture]
public class FooContextActionTests : ContextActionTestBase<FooContextAction>
{
protected override void ProcessAction(Func<FooContextAction> action, ITextControl control, ISolution solution)
{
}
protected override string ExtraPath { get; }
protected override string RelativeTestDataPath => @"FooContextActionTests";
[Test]
public void Test01()
{
DoTestFiles("Test01.cs");
}
}
我已經對簡單的快速修復進行了類似的測試。 該測試將按預期工作,並對輸入或.gold
文件的任何更改做出反應。 因此,問題是如何正確測試上下文操作。
使用了ReSharper SDK 9.2。
我做的! 這些步驟解決了問題:
ContextActionTestBase
更改為CSharpContextActionExecuteTestBase
; ExtraPath
屬性值設置為等於RelativeTestDataPath
值(此值是輸入和黃金文件所在的文件夾名稱)。 ProcessAction
覆蓋。 該測試類正常工作:
[TestFixture]
public class FooContextActionTests : CSharpContextActionExecuteTestBase<FooContextAction>
{
protected override string ExtraPath => "FooContextActionTests";
protected override string RelativeTestDataPath => "FooContextActionTests";
[Test]
public void Test01()
{
DoTestFiles("Test01.cs");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.