Есть ли способ получить заказанный тест во время выполнения?
У меня есть партия, которая запускает много заказанных тестов.
Во время выполнения мне нужно получить имя текущего упорядоченного теста, который выполняется.
Я знаю, как получить текущую информацию о текущем тесте, используя класс 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