2015-11-30 5 views
7

Я просмотрел documentation for MSTest, но все еще стараюсь понять правильное использование настроек testsettings/runsettings в тестовом проекте. This article указывает, что .runsettings должно быть всем, что требуется, и нет необходимости в файле .testsettings файл (VS2010 и выше).Использование .runsettings через командную строку в MSTest.exe

Я создал серию тестов, в которых используется Selenium Driver для выполнения интеграционных тестов для нашего приложения. Поскольку это интеграционные тесты, мне нужен способ подачи различных параметров в зависимости от среды, с которой выполняются эти тесты. Для этого я создал два отдельных файла .runsettings: один для локальной среды разработки и один для размещения.

Выполнение этих тестов с помощью Visual Studio работает отлично. Visual Studio дает вам возможность указать файл настроек с помощью пункта меню Test/Test Settings/Select Test Settings.

На моем сервере сборки, однако, я должен опираться на инструменты командной строки и, в частности, MSTest.exe. Следующая командная строка выполняет тесты и правильно строит файл результатов.

MSTest.exe /noisolation /resultsfile:"D:\Results\TestResult.trx" /testcontainer:"d:\Project\bin\Release\Project.Tests.dll" 

Однако все тесты терпят неудачу из-за NullReferenceException брошенного при попытке извлечения параметров, которые я указал в .testsettings.

Есть ли способ передать путь к соответствующему .testsettings файл через аргументы MSTest.exe? Я просмотрел документы и /help, и ближайший вариант, который я нашел, был /testsettings, который не является тем, что я хочу, так как он используется для указания пути к файлу .testsettings.

ответ

9

Когда using a .runsettings file, you need to use vstest.console.exe, а не mstest.exe. Если вы используете mstest.exe, вам все равно нужно использовать файл .testsettings, аналогичный тому, который вы использовали с Visual Studio 2010.

+0

Спасибо! Не знаю, как я пропустил что-то настолько очевидное! Я неправильно понял, что runsettings можно использовать как для ** MSTest **, так и для VSTest.Console ** и слишком сосредоточен на том, чтобы заставить его работать, чтобы понять различия. В любом случае - я ценю вашу помощь! – DaRussian