Как получить доступ к состоянию тестового класса из пользовательского атрибута IApplyToTest?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как получить доступ к состоянию тестового класса из пользовательского атрибута IApplyToTest?

Сообщение Anonymous »

У меня есть тестовый класс с TestFixtureSource с двумя значениями: «Unit» и «Integration». Эти значения являются значениями режима. На основе этого режима класс устанавливает зависимости как макеты или реальные реализации. Некоторые классовые тесты актуальны для обоих режимов, другие актуальны только для одного из них. Я пытаюсь найти способ пропустить или игнорировать некоторые тесты в зависимости от значения режима. Итак, я хочу сделать что-то вроде следующего

Код: Выделить всё

[TestFixtureSource(nameof(UnitOrIntegration))]
class Tests(string Mode)
{
[SetUp]
void Setup()
{
if (Mode == "Unit") { ... }
if (Mode == "Integration") { ... }
}

[Test] //actual for both modes
void Test1() { ... }

[Test][WhenModeIs("Unit")]
void Test2() { ... }

[Test][WhenModeIs("Integration")]
void Test2() { ... }
}

Я нашел кое-что, что может помочь

Код: Выделить всё

    [AttributeUsage(
AttributeTargets.Method,
AllowMultiple = false,
Inherited = false)]
public class WhenModeIsAttribute(string Mode)
: NUnitAttribute, IApplyToTest
{
public void ApplyToTest(Test test)
{
if (/* I need check mode here */)
{
test.RunState = RunState.Ignored;
test.Properties.Set(
PropertyNames.SkipReason,
$"It is not actual for {Mode}");
}
}
}
Но я не могу найти способ получить доступ к значению режима. Как это сделать?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -attribute
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»