Существует программный API для запуска программных тестов Visual Studio?
Запуск MSTests.exe с Process.Start() не работает в текущем сценарии. Я ищу что-то вроде NUnit SimpleTestRunner.
Любые идеи?
/Erik
Существует программный API для запуска программных тестов Visual Studio?
Запуск MSTests.exe с Process.Start() не работает в текущем сценарии. Я ищу что-то вроде NUnit SimpleTestRunner.
Любые идеи?
/Erik
Вы правы в том, что нет публичного API для фреймворка mstest. В один прекрасный день я написал ручную замену mstest, чтобы понять, как это было тяжело, и это не так просто, как кажется (особенно если вы хотите использовать преимущества более чем одного ядра процессора), поэтому остерегайтесь идти по этому пути.
Лично я всегда просто программировал mstest.exe
, а затем разбирал полученный XML файл .trx
. Существуют ли какие-либо конкретные причины, по которым вы не можете использовать Process.Start
для его запуска?
P.S. Некоторое странное поведение mstest.exe решается, если вы передаете параметр командной строки /noisolation
- дайте ему перейти, если вы так наклонены: -)
Обновление: Эрик упоминает, что хочет запустить тестовый API в текущем потоке, чтобы он мог установить культуру потока для проблем глобализации.
Если вы запустите unit test под отладчиком, вы заметите, что mstest создает кучу потоков и запускает все ваши тесты в разных потоках, поэтому это вряд ли работает, даже если вы можете получить доступ к API.
Я предлагаю сделать следующее:
[ClassInitialize]
(или [TestInitialize]
), который читает эту переменную среды и устанавливает культуруПосле глубокого погружения с отражателем в MSTest.exe и далее в стек Visual Studio Unit Test я обнаружил, что API, используемый MSTest, запечатан и закрыт, поэтому я не могу использовать его извне.
Почему бы не использовать Reflector и посмотреть, как NUnit SimpleTestRunner запускает тесты... И затем используйте эту технику...
Вы можете использовать Microsoft REST API для TFS для запуска тестов ms. Пожалуйста, обратитесь к документации здесь.
Я связался с "Call a Rest API", чтобы вы могли увидеть, как вы собираетесь звонить одному из REST API для TFS.
Обратите внимание, что если ваши тесты связаны с сборкой, они должны запускаться автоматически каждый раз при постановке в очередь.
Вот ссылка на Запустить функциональные тесты.
Я также открыл статью об использовании TFS SDK API для запуска тестов. Вот и эта ссылка: Ссылка на статью API