nunit-console не запускает тесты с TestCase и TestCaseSource

Я использую Xamarin Studio в OSX, и я реализовал тестовый набор проекта PCL (без ссылок на View iOS и Android) с NUnit.Framework. Все отлично работает внутри Xamarin Studio через графический интерфейс (все тесты запущены, и все заработало).

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

 mono /Library/Frameworks/Mono.framework/Versions/3.12.0/lib/mono/4.5/nunit-console.exe Libs/Debug/MyTests.dll

у меня есть этот вывод

NUnit version 2.4.8
Copyright (C) 2002-2007 Charlie Poole.
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.
Copyright (C) 2000-2002 Philip Craig.
All Rights Reserved.

Runtime Environment - 
   OS Version: Unix 14.1.0.0
  CLR Version: 4.0.30319.17020 ( 3.12.0 ((detached/de2f33f Mon Feb  2 14:42:07 EST 2015) )

Tests run: 7, Failures: 0, Not run: 19, Time: 16.530 seconds

Есть 19 тестов, которые не выполняются с такой мотивацией:

<test-suite name="MyTestClass" success="True" time="0.000" asserts="0">
   <results>
      <test-case name="NamespaceExample.MyTestClass.MyTestMethod" description="My Test Description" executed="False">
         <reason>
            <message><![CDATA[Method MyTestMethod's signature is not correct: it must not have parameters.]]></message>
         </reason>
      </test-case>
   </results>
</test-suite>

у такого рода тестов есть общая черта - использование TestCase. Пример

namespace NamespaceExample
{
    [TestFixture]
    public class MyTestClass
    {

        public IMyService service;

        [SetUp]
        public void TestCase()
        {
            // this method will be called before running every test
            service = new MyService ();
        }

        [Test (Description = "My Test Description")]
        [TestCase("it")]
        public void MyTestMethod(string code)
        {
            string terms = service.MethodToTest (code);
            Assert.IsNotNull (terms);
        }
    }
}

Похоже, что nunit-console не запускает тест с параметрами TestCase. Я также пытался использовать TestCaseSource с источником IEnumerable, но результаты не меняются.

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

Как я мог решить?

Я также прочитал эту проблему Аналогичный вопрос но это не решает, потому что результат тот же (тесты не запускались).

Моя среда

=== Xamarin Studio ===

Version 5.7.1 (build 17)
Installation UUID: xxx
Runtime:
    Mono 3.12.0 ((detached/de2f33f)
    GTK+ 2.24.23 (Raleigh theme)

    Package version: 312000076

=== Apple Developer Tools ===

Xcode 6.0 (6299)
Build 6A313

=== Xamarin.iOS ===

Version: 8.6.1.20 (Indie Edition)
Hash: xxx
Branch: 
Build date: 2015-01-24 09:42:21-0500

=== Xamarin.Android ===

Version: 4.20.0.28 (Indie Edition)
Android SDK: xxx/android-sdk-mac_x86
    Supported Android versions:
        1.6    (API level 4)
        2.1    (API level 7)
        2.2    (API level 8)
        2.3    (API level 10)
        3.1    (API level 12)
        4.0    (API level 14)
        4.0.3  (API level 15)
        4.1    (API level 16)
        4.2    (API level 17)
        4.3    (API level 18)
        4.4    (API level 19)
        4.4.87 (API level 20)
        5.0    (API level 21)
Java SDK: /usr
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

=== Xamarin.Mac ===

Not Installed

=== Build Information ===

Release ID: 507010017
Git revision: xxx
Build date: 2015-02-03 19:43:29-05
Xamarin addins: f7b7d34419c9ec24501bfa7c658e80a6305613e0

=== Operating System ===

Mac OS X 10.10.2
Darwin LS.local 14.1.0 Darwin Kernel Version 14.1.0
    Mon Dec 22 23:10:38 PST 2014

person Luigi Saggese    schedule 13.02.2015    source источник


Ответы (1)


Попробуйте использовать более новую версию NUnit. Вы используете NUnit 2.4.8. Встроенный в NUnit runner Xamarin Studio использует версию 2.6.3 NUnit.

Похоже, что в NUnit 2.5 появилась поддержка атрибута TestCase. Вы можете загрузить NUnit с: http://nunit.org/index.php?p=download

person Matt Ward    schedule 13.02.2015