MSBuild, решение VS2008 и CI - каковы лучшие практики? - PullRequest
0 голосов
/ 04 октября 2009

Я настраиваю систему CI для настольного проекта VS2008 / C #, ничего особенного, просто цикл сборки / тестирования. CI будет работать под Hudson, используя MSBuild / MSTest, но я не могу решить, как сделать несколько вещей, может, вы мне поможете?

Мои параметры для запуска проекта в CI:

  • Запустите .sln напрямую из MSBuild
  • Запустите .csproj напрямую из MSBuild
  • Создайте отдельный проект MSBuild, ссылаясь на .sln или .csproj как задачу MSBuild
  • Создайте отдельный проект MSBuild, импортирующий некоторые вещи (группы свойств или группы элементов) из .csproj

Если бы мне не нужно было запускать тесты, я бы, скорее всего, просто использовал 1-й вариант (запустите .sln с MSBuild). Но мне нужно добавить задачу для запуска тестов, поэтому я не могу решить, следует ли мне добавить задачу / цель к .csproj или сделать это в отдельном проекте. Единственное, чего я хочу достичь, - это когда я изменяю свой .sln или один из .csproj, в идеале мне не нужно прикасаться к чему-то другому, чтобы иметь возможность продолжать работу в CI.

Другой вопрос касается запуска MSTest - достаточно ли задачи Exec или я должен написать / использовать какую-то задачу MSTest (кажется, не могу найти ее в .Net)

1 Ответ

2 голосов
/ 05 октября 2009

Тестовое задание является встроенным заданием для MSBuild в .NEt 3.5 Framework, как и покрытие кода. Просто выполните поиск по объектам BeforeTest и CoreTest на MSDN. Не очень сложно, просто включите что-то вроде:

   <ItemGroup>
      <TestContainer Include="$(OutDir)\BuildTestProject.dll" />
   </ItemGroup>

   <ItemGroup>
      <MetaDataFile Include="$(SolutionRoot)\BuildTest.vsmdi" />
   </ItemGroup>

   <PropertyGroup>
      <RunConfigFile>$(SolutionRoot)\LocalTestRun.testrunconfig</RunConfigFile>
   </PropertyGroup>

должно работать ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...