Nunit - TestContext.CurrentContext.Test не работает - PullRequest
8 голосов
/ 05 января 2011

Я использую nunit 2.5.9.10348 и пытаюсь извлечь текущее имя теста в событии TearDown, чтобы я мог присвоить имени файла скриншота имя теста, однако оно всегда равно нулю (см. Прикрепленное изображение). Закрытая переменная _context имеет TestName, но это бесполезно для меня!

Кто-нибудь имел успех, используя эту новую TestContext функциональность (с 2.5.7).

alt text

Ответы [ 3 ]

3 голосов
/ 05 января 2011

Из вашего скриншота я вижу, что _context имеет ключи "TestName" и "Properties".Но TestAdapter ищет ключи «Test.Name» для имени и «Test.Properties» для свойств.Итак, что-то не так с инициализацией TestContext (я думаю, что неправильные данные были помещены в Remoting.Messaging.CallContext).

После небольшого исследования (см. Комментарии): тесты NUnit должны выполняться средой NUnit testig для контекстнойбыть доступным.

0 голосов
/ 28 января 2011

Та же проблема с тестером R #.Просто скачали исходники NUnit и добавили обходной путь в TestAdapter, чтобы он работал с r #

        public string Name
        {
            get
            {
                return (_context["Test.Name"] ?? _context["TestName"]) as string;
            }
        }
0 голосов
/ 05 января 2011

У меня была такая же проблема.Это произошло, когда в методе TearDown я выполнил метод, который фактически должен был сделать демонтаж

[TearDown]
public void CleanUp()
{
    TestContext.CurrentContext.Test.FullName; //!=null
    someClassInstance.DoTearDown();
}

class SomeClass
{
     public void DoTearDown()
     {
          TestContext.CurrentContext.Test.FullName; //==null
     }
}

.Это ваш случай?

ОБНОВЛЕНИЕ: Теперь я посмотрел на скриншот, так что это не ваш случай:)

...