Можно ли пропустить все тесты из определенного класса, например, в NUnit
[TestFixture]
[Ignore("Reason")]
public class TestClass {
}
Можно ли пропустить все тесты из определенного класса, например, в NUnit
[TestFixture]
[Ignore("Reason")]
public class TestClass {
}
Нет - в настоящее время такого объекта нет,
Одним быстрым способом достижения эффекта в 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
, что делает его вероятным забыли)
Вы можете достичь этого через пользовательский ITestClassCommand.
См. http://mariangemarcano.blogspot.be/2010/12/xunitnet-running-tests-testcategory.html
Добавление причины почти через год после первоначального вопроса. У меня есть набор тестов, которые вызывают реальный серверный apis, и я бы хотел запустить его по запросу. С nUnit у него есть Игнорировать атрибут: с помощью этого набора тестовый бегун пропустит эти тесты, но я все еще могу запустить его вручную.
xUnit не имеет такой функции. Ближайший устанавливает такой атрибут уровня класса и комментирует его, когда я хочу его запустить.
Вот мой взломать, чтобы избежать ошибки 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");
}
}