вывести имя текущего теста с использованием кода в методе [Setup] - PullRequest
7 голосов
/ 13 мая 2009

У меня наверху всех моих тестов есть строка, которая выглядит следующим образом:

Console.WriteLine(System.Reflection.MethodBase.GetCurrentMethod().Name); 

Похоже, было бы неплохо, если бы я мог просто вставить это в мой метод Init (помеченный [Setup]). Я думал, что это сработает, но независимо от того, какое число я вставлю для фрейма стека, самое близкое, что я могу получить, это Init. Не то, что я хочу, но очень близко:

string methodName = new StackFrame(0).GetMethod().Name;
Console.WriteLine(methodName);

Я думаю, что это просто невозможно, учитывая то, как Nunit проводит тесты.

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

Ответы [ 4 ]

13 голосов
/ 01 июня 2012

Мне может помочь следующее:

string testName = NUnit.Framework.TestContext.CurrentContext.Test.Name;
string testFullName = NUnit.Framework.TestContext.CurrentContext.Test.FullName;
6 голосов
/ 22 мая 2009

TestCaseAttribute не был добавлен до NUnit 2.5, поэтому вы не можете его найти. Но это все равно не поможет - к сожалению, метод SetUp вызывается перед тестовым методом, а не в контексте тестового метода (поэтому он не будет отображаться в стеке вызовов).

К счастью, NUnit уже поддерживает то, что вы пытаетесь сделать! В графическом интерфейсе выберите Инструменты> Параметры> Графический интерфейс> Общие> Вывод текста и установите флажок «Отображать метки TestCase». Или, для консоли, просто добавьте /labels к параметрам.

1 голос
/ 31 марта 2016

Вот VB, который я использую для записи каждого теста в файл:

<SetUp()>
Public Sub Setup()
   Logging.logTest(NUnit.Framework.TestContext.CurrentContext.Test.Name)
End Sub
0 голосов
/ 14 мая 2009

Вы можете использовать NUnit.Core.NUnitFramework.TestCaseAttribute, чтобы получить имя текущего теста.

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