Есть ли API для управления Визуальными Модульными тестами Студии программно?

Есть ли API для управления Визуальными Модульными тестами Студии программно?

Управление MSTests.exe с Процессом. Начните (), не работает в текущем сценарии. То, что я ищу, является чем-то как NUnit SimpleTestRunner.

Какие-либо идеи?

/Erik

15
задан Erik Öjebo 13 January 2010 в 07:04
поделиться

3 ответа

Вы правы в том, что для платформы mstest нет общедоступного API. Однажды я написал ручную замену mstest, чтобы увидеть, насколько это было сложно, и это не так просто, как кажется (особенно, если вы хотите использовать преимущества более чем одного ядра процессора), поэтому остерегайтесь идти по этому пути.

Лично я всегда просто запускал mstest.exe программно, а затем анализировал полученный XML-файл .trx . Есть ли какие-то особые причины, по которым вы не можете использовать Process.Start для его запуска?

P.S. Некоторые из странного поведения mstest.exe решаются, если вы передаете параметр командной строки / noisolation - попробуйте, если вам так хочется: -)


Обновление: Эрик упоминает, что хочет запустить тестовый API в текущем потоке, поэтому он может установить культуру потоков для решения проблем глобализации.

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

Я бы посоветовал сделать следующее:

  1. В вашем тестовом приложении "runner" установите переменную среды
  2. Запустите mstest, указав ее на определенные тесты
  3. Добавьте [ClassInitialize] (или [TestInitialize] ), который считывает эту переменную среды и устанавливает культуру
  4. Profit!
10
ответ дан 1 December 2019 в 04:40
поделиться

Почему бы не использовать отражатель и видеть, насколько NUNIT Simpletestrunner запущен тесты ... а затем использовать эту технику ...

0
ответ дан 1 December 2019 в 04:40
поделиться

После глубокого погружения с отражателем в MStest.exe и дальше вниз в тестовый стек визуального студии, я обнаружил, что API, используемый MSTEST, герметизирован и сделан в частном порядке, так что я не могу быть использованы снаружи.

3
ответ дан 1 December 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: