Украшение теста xUnit с помощью пользовательского атрибута делает этот модульный тест не отвечающим - PullRequest
0 голосов
/ 08 июля 2019

Я пишу модульные тесты на C # с использованием XUnit и пытаюсь создать подкласс SkippableFactAttribute для создания нового атрибута MySkippableFactAttribute, который устанавливает переменную экземпляра родительского класса Skip, в результате чего тест пропускается,Вот объявление атрибута:

public class MySkippableFactAttribute : SkippableFactAttribute
{
    public MySkippableFactAttribute()
    {
        this.Skip = "Skip this for now";
    }
}

Вот используемый атрибут:

[MySkippableFactAttribute]
public void TestMethod()
{ }

А вот тестовый вывод, где TestMethod правильно пропущен: enter image description here


Теперь я попытаюсь добавить параметр в конструктор, и вы увидите, что модульный тест xUnit перестает отвечать на запросы.Вот модифицированный конструктор:

public class MySkippableFactAttribute : SkippableFactAttribute
{
    public MySkippableFactAttribute(string parameterDummy)
    {
        this.Skip = "Skip this for now";
    }
}

И использование атрибута теперь меняется:

[MySkippableFactAttribute("this is a proof of concept")]
public void TestMethod()
{ }

И хотя я могу пересобрать проект и щелкнуть, чтобы запустить этот модульный тест много раз,тест выглядит так, как будто его еще не запускали.Я даже могу установить точку останова в конструкторе и увидеть, что parameterDummy правильно установлено на «это доказательство концепции»:

enter image description here


Это ошибка Visual Studio?Как простое добавление атрибута конструктора может заставить весь тест выглядеть так, как будто он никогда не запускался?Как я могу успешно использовать параметр в конструкторе и при этом показывать тест как пропущенный?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...