Использование выражений категорий в консольном средстве выполнения Nunit

Я читал эту ссылку по выражениям категорий при использовании / include или / исключить заявление. Я хочу иметь возможность включать только тест запуска, который будет выполняться из двух доступных тестов, или запускать все тесты, но с использованием / include: A + B или / exclude: A. Однако по какой-то причине он отображает неправильное количество тестов, которые нужно запустить и / или не запустить. Это почему?

Может ли кто-нибудь предоставить мне пример того, как категоризировать выражения (путем манипулирования исходным кодом) и добавить, как запускать команду в консоли?

По сути, я сделал следующее:

using System;
using NUnit;
using NUnit_Application;
using NUnit.Framework;

namespace NUnit_Application.Test
{
[TestFixture]
[Category("MathS")] 
public class TestClass
{
    [TestCase]
    [Category("MathA")]
    public void AddTest()
    {
        MathsHelper helper = new MathsHelper();
        int result = helper.Add(20, 10);
        Assert.AreEqual(40, result);
    }

    [TestCase]
    [Category("MathB")]
    public void SubtractTest()
    {
        MathsHelper helper = new MathsHelper();
        int result = helper.Subtract(20, 10);
        Assert.AreEqual(10, result);
    }
}
}

И мой оператор командной строки был nunit-console /framework:net-4.0 /run:NUnit_Application.Test.TestClass.AddTest C: ~ \ NUnit_Application \ NUnit_Application \ NUnit_Application.Test \ bin \ Debug \ NUnit_Application: "include: MathA "

Дело в том, что консоль знакома с тем, что означают команды, и говорит, что включает категорию Math A. Однако он показывает, что нулевые тесты выполнялись и нулевые тесты не выполнялись.

Я запускаю NUnit 2.6.2, консольный бегун.


person Kala J    schedule 13.08.2013    source источник


Ответы (2)


Вот команда, которую я использовал изначально:

nunit-console /framework:net-4.0 /run:NUnit_Application.Test.TestClass.AddTest C:~\NUnit_Application\NUnit_Application\NUnit_Application.Test\bin\Debug\NUnit_Application.Test.dll /include:"MathA"

Я заметил, что если я просто вызываю TestClass, а не отдельный тестовый пример, он работает:

nunit-console /framework:net-4.0 /run:NUnit_Application.Test.TestClass C:~\NUnit_Application\NUnit_Application\NUnit_Application.Test\bin\Debug\NUnit_Application.Test.dll /include:"MathA"
person Kala J    schedule 14.08.2013

Я думаю, это потому, что у вас есть целый класс с атрибутом:

[Category("MathS")]

Так что он пропускает это.

person will    schedule 13.08.2013
comment
Я удалил [Категория (MathS)], но проблема осталась прежней. - person Kala J; 13.08.2013
comment
Да, перекомпилировал. Может быть, приведите пример? Я просто хочу протестировать возможности NUnit и узнать, как использовать его для выражений категорий. - person Kala J; 13.08.2013
comment
Я заставил его работать. Странно только то, почему, когда я включаю: MathA + MathB, ни один из тестов не запускается. Но если исключить: MathA + MathB, будет сказано, что выполнено 2 теста. Это почему? - person Kala J; 13.08.2013
comment
Согласно документации NUnit (ваша ссылка), MathA+MathB означает обе категории, то есть тест должен быть в обеих категориях, чтобы быть включенным или исключенным. Я думаю, что вам нужно /include:MathA,MathB, который должен запускать тесты, которые принадлежат либо (или обеим) из двух категорий. - person David; 13.08.2013