Подтвердить что ты не робот

Пропуск всего тестового класса в xUnit.net

Можно ли пропустить все тесты из определенного класса, например, в NUnit

[TestFixture]
[Ignore("Reason")]
public class TestClass {
}
4b9b3361

Ответ 1

Нет - в настоящее время такого объекта нет,

Одним быстрым способом достижения эффекта в xUnit является комментирование public - частные классы не отражаются (очевидно, он не будет отображаться в списке пропуска таким образом).

Подумайте о том, чтобы зарегистрировать его как проблему в CodePlex, если вы считаете, что это достаточно распространено (я лично не могу себе представить, как это ускорить, поскольку я просто не сталкиваюсь с ситуациями, когда мне нужно пропустить всю ценность тестового класса тесты).

UPDATE: Другой способ - поместить TraitAttribute в класс, а затем (при условии, что вы используете бегун xunit.console) отфильтровываете его, запустив /-trait traitName. (например, вы можете достичь ExplicitAttribute, некоторые аспекты базового метода BDD для ожидающих тестов и аналогичной семантики именно так, конечно, большая проблема заключается в том, что они не отображаются ни в каких отчетах при использовании любого из этих методов фильтрации)

ОБНОВЛЕНИЕ 2: вы можете сделать

const string skip = "Class X disabled";

[Fact(Skip=skip)]
void Test() {}

Затем вы можете перейти на const string skip = null, чтобы отменить пропуски. Преимущество (dis) в этом состоит в том, что тест по-прежнему показывается как пропущенный тест в списке тестов, как правило, с причиной, включенной в отчет о тестовом прогоне (vs делает его private, что делает его вероятным забыли)

Ответ 3

Добавление причины почти через год после первоначального вопроса. У меня есть набор тестов, которые вызывают реальный серверный apis, и я бы хотел запустить его по запросу. С nUnit у него есть Игнорировать атрибут: с помощью этого набора тестовый бегун пропустит эти тесты, но я все еще могу запустить его вручную.

xUnit не имеет такой функции. Ближайший устанавливает такой атрибут уровня класса и комментирует его, когда я хочу его запустить.

Ответ 4

Вот мой взломать, чтобы избежать ошибки xUnit1000: классы тестов должны быть общедоступными (проверено на одном факте, я думаю, что Теории тоже могут быть взломаны).

// Uncomment to enable tests
//public class FactSwitch : FactAttribute { }

// Uncomment to disable tests
internal class FactSwitch : Attribute { }

public class MyTests
{
    [FactSwitch]
    public void MyTest1()
    {
        "it".ShouldBe("it");
    }
}