Запустите все тесты в тестовом классе, используя TestDriven.NET и NUnit.

Примечание: я использую TestDriven.NET 3.0.2749 и NUnit 2.6.0.12051 для этого проекта.

Я установил TestDriven.NET и NUnit и пытаюсь заставить TestDriven.NET запускать все тесты в классе теста через контекстное меню, вызываемое правой кнопкой мыши.

Из документации TestDriven.NET:

Если выбрано окно редактора кода, тест (ы) для выполнения будет определяться положением каретки; отдельные тесты выполняются путем щелчка правой кнопкой мыши в любом месте внутри метода тестирования и выбора "Выполнить тест (ы)", как показано на рисунке 2; все тесты в тестовом устройстве выполняются путем щелчка правой кнопкой мыши внутри класса (но вне какого-либо метода) и выбора "Выполнить тест (ы)"; все тесты в пространстве имен выполняются путем щелчка правой кнопкой мыши внутри пространства имен и выбора "Выполнить тест (ы)".

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

Я получаю следующую ошибку, когда размещаю каретку вне метода теста:

Целевой тип не содержит тесты из известной тестовой среды или метода "Main".

Обновлено 1: добавлен пример кода.

Пример кода для тестирования:

namespace TDDN.Framework
{
    public class ExampleClass
    {
        public ExampleClass() { }

        public Int32 Add(Int32 x, Int32 y)
        {
            return x + y;
        }

        public Int32 Subtract(Int32 x, Int32 y)
        {
            return x - y;
        }
    }
}

Модульные тесты:

using NUnit.Framework;
using TDDN.Framework;

namespace TDDN.UnitTests
{
    [TestFixture] // Cursor caret placed here results in error above.
    public class ExampleClassTests
    {
        [Test] // Cursor caret placed here works.
        public void Add_SumTwoIntegers_SumReturned()
        {
            ExampleClass exampleClass = new ExampleClass();

            Assert.AreEqual(10, exampleClass.Add(5, 5));
        }

        [Test] // Cursor caret placed here works also.
        public void Subtract_SubtractTwoIntegers_DifferenceReturned()
        {
            ExampleClass exampleClass = new ExampleClass();

            Assert.AreEqual(5, exampleClass.Subtract(10, 5));
        }
    }
}

2 ответа

Решение

Я только что столкнулся с этой проблемой, когда использовал те же версии TestDriven.NET и NUnit (3.0.2749 и 2.6.0.12051).

Проблема в том, что TestDriven.NET 3.0 не поддерживает NUnit 2.6, поэтому он не распознает атрибуты NUnit [Test] и [TestFixture]. Таким образом, TestDriven.NET по-прежнему будет запускать ваши отдельные функции тестирования, но в режиме Ad Hoc (как показано в конце сообщения Pass/Fail/Skip при тестировании).

Мне удалось решить эту проблему, установив более новую версию TestDriven.NET (3.3 Beta 2), которая полностью поддерживает NUnit 2.6 (см. https://groups.google.com/d/msg/nunit-discuss/pTCDx2_L8jU/TlpULzE36wEJ) Теперь у вас должна быть возможность запустить все тесты в приборе сразу и увидеть (NUnit 2.6.0), отображаемый в конце теста.

У меня было точно такое же сообщение об ошибке и похожее поведение при размещении каретки.

У меня уже была самая новая версия TestDriven.Net.

Моя проблема заключалась в том, что в моем новом TestClass не была указана категория, и она была отфильтрована (Инструменты -> TestDriven.Net -> Общие -> Категории -> Включить тесты в категории).

Так что указание правильной категории решило мою проблему.

Это было то же сообщение об ошибке, но другая проблема и решение.

Другие вопросы по тегам