Как заказать тесты NUnit - PullRequest
22 голосов
/ 06 июня 2011

Более одного раза вопрос был задан на SO.Но единственные ответы, которые даются, гласят: «Вам не нужно заказывать свои юнит-тесты, это плохо, потому что» или «Вы можете избежать этого, если ...»

Я уже знаю, что это плохо, почему этоэто плохо, и техники, чтобы этого избежать.Но это не то, что я хочу знать.Я хотел бы знать, возможно ли заказать выполнение тестов NUnit, кроме алфавитного порядка.Чтобы быть тупым: я на самом деле хочу, чтобы государство распространялось от одного теста к другому.Поверьте мне, у меня есть разумная причина для этого, которая противоречит обычной философии.

MSTest имеет возможность "упорядоченного теста", которая очень полезна в некоторых случаях.Я хотел бы иметь эту способность в NUnit.Можно ли это сделать?

Ответы [ 5 ]

17 голосов
/ 17 марта 2016

Обновление для NUnit 3.2.0 - теперь оно поддерживает OrderAttribute .

OrderAttribute может быть помещен в метод тестирования, чтобы указать порядок, в котором выполняются тесты.Пример:

public class MyFixture
{
    [Test, Order(1)]
    public void TestA() { ... }


    [Test, Order(2)]
    public void TestB() { ... }

    [Test]
    public void TestC() { ... }
}

https://github.com/nunit/docs/wiki/Order-Attribute

9 голосов
/ 06 июня 2011

Обходной путь (хак) состоит в том, чтобы расположить в алфавитном порядке имена ваших тестовых примеров.Смотрите эту ветку:

https://bugs.launchpad.net/nunit-3.0/+bug/740539

Использование алфавитного порядка - это обходной путь, который вы можете использовать, но он не задокументирован и поддерживается за пределами визуального порядкадисплея.Теоретически это может измениться в любое время.На практике это не изменится до NUnit 3.0, поэтому вы вполне можете использовать его в качестве обходного пути

Эта цитата принадлежит Чарли Пулу, главному разработчику NUnit.

Также кажется, что у них есть схема готовки для поддержки упорядоченных тестов в NUnit 3, хотя как они будут это делать, все еще обсуждается.

5 голосов
/ 20 января 2014

Просто обновление для NUnit 2.5.1.Согласно документации существуют случаи, когда даже алфавитный порядок не поддерживается.

NUnit TestCaseAttribute

Порядок исполнения

В NUnit 2.5 отдельные тестовые примеры сортируются в алфавитном порядке и выполняются в этом порядке.В NUnit 2.5.1 отдельные случаи не сортируются, а выполняются в том порядке, в котором NUnit их обнаруживает.Этот порядок не соответствует лексическому порядку атрибутов и часто будет варьироваться между различными компиляторами или разными версиями CLR.

В результате, когда TestCaseAttribute появляется несколько раз в методе или когда другие атрибуты, предоставляющие данныеиспользуются в сочетании с TestCaseAttribute, порядок тестов не определен.

2 голосов
/ 24 февраля 2016

Попробуйте использовать NameParameters аргумент для передачи TestName со строкой, которую вы хотите, чтобы упорядочить TestCase () по TestName.

    [TestCase(..., TestName = "1stTest")]
    [TestCase(..., TestName = "2ndTest")]
0 голосов
/ 25 мая 2017

для Nuint вы можете использовать следующий код.

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