ReSharper SDK 組み込みのテスト インフラストラクチャを使用して、カスタム ReSharper コンテキスト アクションをテストしようとしています。入力ファイル、出力ファイル ( .gold
) を作成し、テストを実行しました。次の 2 つの問題が発生します。
- テストは常に成功します (入力と
.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
ファイルの変更に反応します。したがって、問題は Context Action を適切にテストする方法です。
ReSharper SDK 9.2 を使用しています。