Параметры командной строки программы MSTest.exe
Обновлен: Ноябрь 2007
MSTest.exe — это запускаемая из командной строки программа, которая служит для запуска тестов. У этой программы есть несколько параметров, с помощью которых можно настроить ее работу. Многие из этих параметров можно использовать вместе друг с другом; некоторые параметры необходимо использовать друг с другом, как описано ниже. Эти параметры можно указывать в командной строке MSTest.exe в произвольном порядке.
При получении параметров в командной строке программы MSTest.exe регистр не учитывается.
В следующей таблице перечислены все параметры программы MSTest.exe и приведено их краткое описание. Аналогичные данные можно получить, введя MSTest/h в командной строке.
Общие параметры командной строки
/testcontainer:[имя файла] |
Загрузить файл, содержащий тесты. Пример: /testcontainer:tests.dll Дополнительные сведения см. в разделе /testcontainer. |
/testmetadata:[имя файла] |
Загрузить файл, содержащий метаданные теста. Дополнительные сведения см. в разделе /testmetadata. |
/testlist:[путь к списку тестов] |
Указать список тестов для запуска согласно файлу метаданных. Дополнительные сведения см. в разделе /testlist. |
/test:[имя теста] |
Указать имя теста для запуска. Дополнительные сведения см. в разделе /test . |
/noisolation |
Запустить тесты внутри процесса MSTest.exe. При этом повышается скорость работы тестов, но процесс MSTest.exe подвергается риску. |
/runconfig:[имя файла] |
Указывает определенный файл конфигурации запуска. Пример: /runconfig:localtestrun.Testrunconfig Дополнительные сведения см. в разделе /runconfig.
Примечание.
Параметр /runconfig является обязательным при запуске модульных тестов для смарт-устройств.
|
/resultsfile:[имя файла] |
Сохранить результаты запуска теста в указанном файле. Пример: /resultsfile:testResults.trx Дополнительные сведения см. в разделе /resultsfile. |
/unique |
Запустить тест только при наличии уникального совпадения для любого указанного параметра /test. Дополнительные сведения см. в разделе /unique. |
/detail:[ИД свойства] |
Указать имя свойство, для которого нужно показать значения в дополнение к результатам теста. Дополнительные сведения см. в разделе /detail. |
/help |
Отобразить справку об использовании программы MSTest.exe (краткая форма: /? или /h). |
/nologo |
Не отображать при запуске заголовок и сообщение об авторских правах. |
Параметры командной строки для публикации результатов тестов
Дополнительные сведения об этих параметрах см. в разделе Параметры командной строки для публикации результатов тестов.
/publish:[имя сервера] |
Опубликовать результаты в хранилище указанного сервера. |
/publishresultsfile:[имя файла] |
Указать имя файла результатов для публикации. Если имя файла результатов не указано, будет использован файл текущего запуска. |
/publishbuild:[ИД построения] |
Опубликовать результаты теста с данным идентификатором построения. |
/teamproject:[имя командного проекта] |
Указать имя командного проекта, к которому относится данное построение. |
/platform:[платформа] |
Указать платформу построения, для которого публикуются результаты теста. |
/flavor:[версия] |
Указать версию построения, для которого публикуются результаты теста. |
Использование параметров MSTest
В следующих разделах более подробно описаны параметры программы MSTest.exe. Параметры, использующиеся для публикации результатов тестов, отсутствуют в этом разделе. Данные об этих параметрах см. в разделе Параметры командной строки для публикации результатов тестов.
/testcontainer
/testcontainer:[имя файла]
Тестовый контейнер — это файл, содержащий тесты, которые нужно запустить. Например, для упорядоченных тестов тестовым контейнером является файл с расширением .orderedtest, определяющий упорядоченный тест. Для модульных тестов это сборка, построенная из тестового проекта и содержащая файлы исходного кода теста модуля.
Примечание. |
---|
Для модульных тестов это сборка, содержащая тестовый код, а не сборка, содержащая код приложения, которое нужно протестировать. Например, если решение содержит проект BankAccount и соответствующий ему тестовый проект BankAccountTest, нужно указать /testcontainer:BankAccountTest.dll. |
Тестовая сборка содержит все тесты для одного тестового проекта, поэтому число тестовых контейнеров в решении совпадает с числом тестовых проектов в этом решении.
Примечание. |
---|
В тестовом файле метаданных также перечислены запускаемые тесты, поэтому нельзя указывать параметры /testcontainer и /testmetadata в одной командной строке. Если это сделать, то может возникнуть ошибка. |
/testmetadata
/testmetadata:[имя файла]
Параметр /testmetadata служит для запуска тестов в нескольких тестовых контейнерах.
Файл метаданных теста создается для решения при создании списков тестов в окне редактора списков тестов. Этот файл содержит данные обо всех тестах, перечисленных в окне редактора список тестов. Это все тесты всех тестовых проектов вашего решения.
Изменять файл метаданных теста можно только путем изменений в окне редактора списка тестов, например путем создания или удаления тестов или изменения их свойств.
Примечание. |
---|
В тестовом контейнере содержатся запускаемые тесты, поэтому нельзя указывать параметры /testcontainer и /testmetadata в одной командной строке. Если это сделать, то может возникнуть ошибка. |
Файл метаданных теста — это XML-файл, создаваемый в папке решения. Этот файл отображается в обозревателе решений в узле Элементы решения. Файл метаданных теста имеет расширение .vsmdi и сопоставляется с окном редактора списка тестов (если дважды щелкнуть vsmdi-файл в Проводнике Windows, то файл откроется в Visual Studio). Все тесты во всех тестовых проектах решения отображаются в окне редактора списка тестов.
При использовании параметра /testmetadata рекомендуется указать определенные тесты, которые нужно запустить, с помощью параметра /test, /testlist или обоих этих параметров.
/testlist
/testlist:[путь к списку тестов]
Параметр /testlist — это список тестов, которые должны быть выполнены согласно файлу метаданных. Чтобы запустить тесты, содержащиеся в нескольких списках, используйте параметр /testlist несколько раз.
Примечание. |
---|
Параметр /testlist можно использовать только при использовании параметра /testmetadata. |
Можно использовать вместе параметры /testlist и /test. Это равносильно выбору списка тестов и еще одного или нескольких отдельных тестов в окне редактора списка тестов и нажатию кнопки Запустить тесты.
/test
/test:[имя теста]
Используйте параметр /test, чтобы указать отдельные тесты, которые нужно выполнить. Чтобы выполнить несколько тестов, используйте параметр /test несколько раз.
Примечание. |
---|
Параметр /test можно использовать вместе с параметром /testcontainer или вместе с параметром /testmetadata, но не вместе с обоими этими параметрами одновременно. |
Можно использовать вместе параметры /testlist и /test. Это равносильно выбору списка тестов и еще одного или нескольких отдельных тестов в окне редактора списка тестов и нажатию кнопки Запустить тесты.
Строка, которая указывается с параметром /test, используется для сравнения имен тестов в тестовом контейнере или файле метаданных. Это означает, что с помощью одного значения параметра /test можно указать несколько тестов. Например, если указать /test:ittest, то будут найдены совпадения для тестов DebitTest и CreditTest, поскольку имена обоих тестов содержат подстроку "ittest".
Примечание. |
---|
Значение, указываемое с параметром /test, сравнивается не только с именем теста, но и с путем к тесту в том виде, как он отображается в обозревателе решений, или с полным именем теста (в случае с модульными тестами). |
Ниже приведены два примера.
Пример теста модуля: файл UnitTest1.cs в проекте TestProject2 содержит тест TestMethod1. Если указать значение "ittest" с параметром /test, то этот тест будет найден, поскольку строка сравнивается с полным именем "TestProject2.UnitTest1.TestMethod1", а строка "ittest" содержится в "UnitTest1".
Пример универсального теста: следующая командная строка запускает указанный универсальный тест и отображает полный путь к тесту в его результатах.
mstest /testcontainer:"C:\Documents and Settings\<user name>\My Documents\Visual Studio\Projects\TestProject2\TestProject2\generictest1.generic" /test:testproject32\generic
/noisolation
/noisolation
Этот параметр служит для запуска тестов внутри процесса MSTest.exe. Этот параметр больше никак не влияет на конфигурацию запуска тестов. Цель этого параметра — повышение скорости выполнения тестов. Однако при этом повышается риск запуска тестов в целом, поскольку необрабатываемое исключение в тестируемом коде может привести к сбою процесса MSTest.exe.
/runconfig
/runconfig:[имя файла]
Используйте этот параметр для указания файла конфигурации запуска. Пример: /runconfig:localtestrun.Testrunconfig.
Файл конфигурации запуска можно указать и другими способами, например с помощью параметра /testmetadata. Здесь описываются правила, управляющие указанием файлов конфигурации запуска.
Если использован параметр /runconfig, то будет использован указанный файл вне зависимости от наличия параметра /testmetadata.
Если параметр /testmetadata использован для указания файла метаданных, в котором задан файл конфигурации запуска, то этот файл будет использован, если отсутствует параметр /runconfig.
Если параметр /runconfig не используется и файл метаданных теста также не содержит указаний на файл конфигурации запуска, то при запуске теста будет использован файл конфигурации по умолчанию.
Примечание. |
---|
Параметр /runconfig является обязательным при запуске тестов для смарт-устройств. |
/resultsfile
/resultsfile:[имя файла]
Этот параметр служит для сохранения результатов запуска теста в указанный файл. Пример: /resultsfile:testResults.trx.
/unique
/unique
Используйте параметр /unique вместе с параметром /test. При использовании параметра /unique программа MSTest.exe запускает только один тест, имя которого совпадает со значением, указанным в параметре /test.
Например, предположим, что тестовый контейнер MyTestProject содержит тесты MethodTest1 и MethodTest10.
Командная строка:
mstest /testcontainer:testproject2.dll /test:MethodTest1
запустит оба теста (и MethodTest1, и MethodTest10), поскольку "MethodTest1" — подстрока "MethodTest10".
Однако командная строка:
mstest /testcontainer:testproject2.dll /test:MethodTest1 /unique
запустит только тест MethodTest1.
/detail
/detail:[ИД свойства]
Этот параметр используется для отображения дополнительных свойств теста, если они существуют. В одной командной строке можно указать несколько экземпляров параметра /detail, задав для каждого различный идентификатор свойства. Ниже перечислены допустимые идентификаторы свойств для параметра /detail:
adapter |
id |
projectrelativepath |
computername |
isautomated |
readonly |
debugtrace |
link |
spoolmessage |
description |
longtext |
stderr |
displaytext |
name |
stdout |
duration |
outcometext |
storage |
errormessage |
owner |
testcategoryid |
errorstacktrace |
parentexecid |
testname |
executionid |
priority |
testtype |
groups |
projectname |
traceinfo |
Примечание. |
---|
Фактический набор идентификаторов свойств, которые можно использовать с параметром /detail, зависит от типа теста. Поэтому данный список не является точным. В частности, при использовании тестов типов, отличных от содержащихся в Team System (средства тестирования) выбор параметров будет другим. Чтобы определить, какие идентификаторы свойств можно использовать, просмотрите файл результатов теста. Дополнительные сведения о файлах результатов тестов см. в разделе Практическое руководство. Экспорт результатов теста. |
Если для определенного теста существует то или иное свойство, данные этого свойства будут включены в сводку результатов.
Например, команда:
mstest /testcontainer:Errors.dll /detail:testtype
создает следующий результат, содержащий сведения о типе теста:
...Results Top Level Tests-------- -----------------Inconclusive TestProject2.BankAccountTest.CreditTest[testtype] = Unit Test...