Есть ли способ получить заказанный тест во время выполнения?

У меня есть партия, которая запускает много заказанных тестов.

Во время выполнения мне нужно получить имя текущего упорядоченного теста, который выполняется.

Я знаю, как получить текущую информацию о текущем тесте, используя класс TestContext, но он дает мне только тесты в рамках упорядоченного теста, а не сам упорядоченный тест.

Итак, есть ли способ получить информацию о текущем упорядоченном тесте?

РЕДАКТИРОВАТЬ: Продвигая дальнейшие исследования по этому вопросу, я заметил, что даже StackTrace не дает название заказанного теста, который вызвал свои собственные тесты.

Итак, с помощью "StackFrame(1).GetMethod().Name" я получаю имя любого родительского метода, который не является упорядоченным тестом. Когда родительский метод является упорядоченным тестом, я получаю только общее имя "InvokeMethod"...

Так странно.

1 ответ

BenDev, удачи с твоей проблемой? Я знаю, что немного опоздал на вечеринку. Я сам не пробовал, так что никаких гарантий.

Вы можете позволить вашему пакетному файлу записать XML-файл. В этот XML-файл вы помещаете упорядоченный тест, который будет вызывать ваш командный файл. Чем вы сделаете его доступным для ваших тестов, десериализовав файл в коде ваших тестов. Каждый тест может читать из этого файла и преобразовывать данные в простой класс POCO.

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

Написание XML из пакетного файла: https://superuser.com/questions/601861/create-an-xml-file-batch

Разбор XML-файла в C#: https://www.dotnetperls.com/xmlreader

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