Могу ли я получить автоматическое тестирование MSTest с VS2010? - PullRequest
0 голосов
/ 28 мая 2011

Я бы хотел, чтобы MSTest (честно говоря, я бы взял все, что на этом этапе) запускает мои тесты после сборки, а затем, если какие-либо тесты не пройдут, выдаст стандартный вывод file(lineno): message, который Visual Studio распознает и позволяет мнеперейдите прямо к точке сбоя.

Или, если возможно, то после успешной сборки я бы хотел, чтобы команда Visual Studio «Выполнить все тесты в решении» запускалась автоматически.

Насколько далекокак я могу сказать, это невозможно.Версия MSTest для командной строки не выдает правильно отформатированный вывод (и, насколько я могу судить, ни NUnit, ни xUnit), поэтому, когда я добавляю MSTest в Post Build моего проекта, мне все равно приходится прокручивать и искать тот, которыйне удалось.Версия в IDE работает нормально, если я не забуду нажать Ctrl-R,A, когда сборка завершится.

Ответы [ 2 ]

1 голос
/ 08 июня 2011

Я перешел на xUnit , и с незначительным изменением на их модульный тестовый модуль MSBuild я получаю то, что хочу.

1 голос
/ 29 мая 2011

Вы можете получить то, что ищете, сделав пользовательскую цель в файле своего проекта вместо использования предварительно запеченной цели PostBuild. Добавьте что-то подобное прямо в файл проекта, отредактировав его как XML,

<Target Name="RunUnitTests"
  AfterTargets="CoreBuild">
  <Exec
    Command="mstest /testcontainer:$(OutDir)\PathToUnitTests\UnitTests.dll"
    CustomErrorRegularExpression="^Failed"
    />
</Target>

Вам нужно будет правильно указать путь к вашей тестовой сборке или какому-либо другому методу, который вы используете (тестовый файл конфигурации и т. Д.), И вам может понадобиться настроить регулярное выражение, исходя из памяти ...

Это будет запускать mstest аналогично тому, как вы, вероятно, делаете это в PostBuild, но добавляет в MSBuild (то, что управляет системой сборки C #) возможность обнаруживать выходные строки, которые должны учитывать ошибки. Аналогичный параметр есть и для CustomWarningRegularExpression.

Если вы хотите поделиться этим между несколькими проектами, найдите «MSBuild Imports»

...