Я пытаюсь проверить свое настраиваемое контекстное действие ReSharper с использованием встроенной тестовой инфраструктуры ReSharper SDK. Я создал входной файл, выходной файл (.gold
) и запустил тест. Две проблемы возникают:ReSharper SDK test for Context Действие не работает
- Тест всегда успешно (даже если входные и
.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 используется.