NUnit не работает тесты Suite - PullRequest
12 голосов
/ 27 мая 2010

Я создал набор тестов в NUnit, который ссылается на несколько различных модульных тестовых устройств в различных сборках.

Я в значительной степени использовал пример кода из Документов NUnit :

namespace NUnit.Tests
{
    using System;
    using NUnit.Framework;
    using System.Collections;

    public class AllTests
    {
        [Suite]
        public static IEnumerable Suite
        {
            get
            {
                ArrayList suite = new ArrayList();
                suite.Add(new VisionMap.DotNet.Tests.ManagedInteropTest.DotNetUtilsTest());
                return suite;
            }
        }
    }
}

Моя цель - добавить несколько тестов в приведенный выше список, чтобы я мог запустить их все в пакете.

Но когда я пытаюсь загрузить DLL в GUI NUnit, я получаю следующее: alt text

Что я делаю не так?

Я знаю, что в документах говорится, что графический интерфейс не запускается, но я также попробовал консоль.Может кто-нибудь сказать, для чего хороши люксы и как я могу использовать их для достижения своей цели?

Я использую nunit 2.5.0.9122.

Редактировать

Ну, ответов пока нет.В конце концов я нашел альтернативное решение: Категории.Я группирую тестовые приборы, назначая им соответствующие категории, и затем я могу запустить их подмножество в пакетном режиме, игнорируя при этом другое подмножество.

Тем не менее, очень странно, что эта функция Suite полностью нарушена.

Ответы [ 2 ]

3 голосов
/ 20 августа 2010

Люксы на самом деле ни для чего не нужны во все эти дни. Если вы хотите использовать их только для определения того, какие тесты выполняются, а какие не запускаются, это намного лучше достигается с помощью атрибутов Category. Это то, что вы в итоге сделали, и звучит как лучшее решение вашей проблемы.

Однако, для справки других людей и в будущем, вы можете по-прежнему использовать Suite в Nunit. Вы должны запускать их из консоли и только с помощью параметра / fixture. Например, чтобы запустить указанный выше набор, вы должны запустить (при условии, что ваш класс был скомпилирован в сборку AllTests.dll):

nunit-console /fixture:AllTests.Suite AllTests.dll

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


Я использую наборы в некоторых моих тестах, потому что у меня есть некоторые странные варианты использования, которые требуют, чтобы мне иногда приходилось передавать аргумент моим методам тестирования. Я делаю это, создавая набор, такой как ниже. Так что есть некоторые способы их использования, но в вашем случае они не нужны.

[Suite]
    public static IEnumerable MySuite
    {
        get
        {
            var suite = new ArrayList{new TestClass1(arg1), TestClass2(arg2)};
            return suite;
        }
    }
3 голосов
/ 27 мая 2010

Есть ли причина, по которой вы возвращаете "IEnumerable" вместо "TestSuite"?

[Suite]
public static TestSuite Suite 

Обновление

Читая мелким шрифтом в нижней части страницы на сайте NUnit, похоже, что тесты типа Suite не будут отображаться в бегун Gui, поэтому я думаю, что это проблема:)

Наборы в настоящее время не отображаются в графическом интерфейсе или запускаются автоматически любым бегуном, когда они встречаются. Историческая цель механизма Suite состояла в том, чтобы обеспечить способ агрегирования тестов на верхнем уровне каждого запуска. Следовательно, они поддерживаются только при использовании с параметром / fixture в консоли или командной строке графического интерфейса.

Обновление 2

Я не уверен, что вы пытаетесь достичь с помощью функции "Suite", но если вы пытаетесь найти способ настройки набора тестовых сборок для запуска вместе, я использовал " NUnit Протестируйте проекты", чтобы сделать это в прошлом (это всего лишь XML-файл конфигурации, в котором перечислены тестовые библиотеки DLL). Это позволяет настраивать фиксированный набор ссылок на тестовые сборки, а затем загружать их в графический интерфейс или запускать с помощью консоли:

http://www.nunit.org/index.php?p=multiAssembly&r=2.5.5

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