Как заставить TeamCity запускать тесты с помощью MSTest? - PullRequest
21 голосов
/ 05 декабря 2011

Я пытаюсь выяснить, как заставить TeamCity запускать мои MSTests.Я настроил шаг сборки, используя следующие параметры:

  • Путь к MSTest.exe: % system.MSTest.10.0%
  • Список сборокфайлы: Projects \ Metadude. .Tests \ bin \ Debug \ Metadude. .Test.dll
  • Файл конфигурации запуска MSTest: Local.testsettings

Однако, когда этот шаг выполняется, он не выполняет никаких тестов.Это вывод из журнала:

[02:13:49]: Step 2/2: Run Unit Tests (MSTest)
[02:13:49]: [Step 2/2] Starting: "D:\Program Files (x86)\TeamCity\buildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.NUnitLauncher.exe" #TeamCityImplicit
[02:13:49]: [Step 2/2] in directory: D:\Program Files (x86)\TeamCity\buildAgent\work\1f82da3df0f560b6
[02:13:50]: [Step 2/2] Microsoft (R) Test Execution Command Line Tool Version 10.0.30319.1
[02:13:50]: [Step 2/2] Copyright (c) Microsoft Corporation. All rights reserved.
[02:13:50]: [Step 2/2]
[02:13:50]: [Step 2/2] Please specify tests to run, or specify the /publish switch to publish results.
[02:13:50]: [Step 2/2] For switch syntax, type "MSTest /help"
[02:13:50]: [Step 2/2] Process exited with code 1
[02:13:50]: Publishing internal artifacts
[02:13:50]: [Publishing internal artifacts] Sending build.finish.properties.gz file
[02:13:50]: Build finished

Я попытался указать тесты для запуска, используя следующее:

  • Тесты: Tests.Metadude.Core.Extensions.StringExtensionsTests

Но это не работает.Кажется, я не могу найти в Google какую-либо документацию, касающуюся этапа сборки MSTest в TeamCity.

ОБНОВЛЕНИЕ Хорошо, я идиот.Что ж, это может быть немного грубовато, но в тестовой сборке не было «s» в названии сборки.Хотя было бы неплохо получить что-то подобное в журнале сборки.

1 Ответ

20 голосов
/ 05 декабря 2011

Во-первых, убедитесь, что сборка, которую вы пытаетесь проверить, существует в этом месте.

е

ваш относительный путь: Проекты \ Metadude..Tests \ Bin \ Debug \ Metadude..Test.dll

Однако я бы ожидал, что что-то будет зарегистрировано TC, если ваш файл не существует. Похоже, что он работает MSTest без каких-либо аргументов.

Если вы уверены, что путь правильный, попробуйте его без указания файла .testsettings, чтобы узнать, что произойдет. Я использую MSTest успешно в TC без этого (но вам это может понадобиться). Другая вещь, которую я делаю иначе, я задаю полный путь к MSTest.exe, то есть

C: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ MSTest.exe

вместо их переменной '%system.MSTest.10.0%'

Я не могу вспомнить, почему я это сделал, но была бы веская причина (как будто она не работала при использовании их переменной)

...