Потратив очень много времени на настройку автоматической сборки с помощью psake, мне пришла в голову мысль, почему бы не использовать язык, который я знаю лучше всего, для создания компоновщика?
psake - отличная среда для создания автоматизированной сборки.строить.Проблема, которую я всегда испытываю, заключается в изучении PowerShell для выполнения более сложных задач.Я уверен, что то же самое можно сказать о NAnt, msbuild и т. Д.
Моя идея решить эту проблему - создать систему сборки для данного решения в .Net.Базовая структура процесса будет выглядеть так:
build.bat
rem // Set the environment for msbuild.
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"
rem // Build the solution's builder.
msbuild.exe buildsolution.csproj
rem // Run the solution's builder.
BuildSolution.exe <task>
BuildSolution проекта
Крошечныйконсольное приложение, которое:
- Ссылается на структуру BuildSolution.
- Включает метод для каждой задачи.Например:
- Очистить
- Сборка
- Тест
- Подтвердить
- Регистрирует задачи и их зависимости,он может работать.Например:
- Builder.RegisterTask (x => x.Clean)
- Builder.RegisterTask (x => x.Build) .DependsOn (x => x.Clean)
- Builder.RegisterTask (x => x.Test) .DependsOn (x => x.Build)
- Builder.RegisterTask (x => x.Commit) .DependsOn (x => x.Test)
- Запускает строитель.например, Builder.Execute ()
Тестовое задание
В конечном итоге тестовое задание вызовет nunit, mstest, xunit и т. д., но сначала строит требуемую командную строку.Это пример того, как использование .Net вместо PowerShell является для меня победителем.
При разработке своих приложений я придерживаюсь простого соглашения об именах ProjectName и ProjectName.Tests.Система сборки ищет файл * .Tests.dll и включает их в командную строку mstest.
Преимущества использования приложения .Net для построения этой задачи:
- Нет необходимостивыучить язык сценариев для поиска тестовых библиотек.
- Разработка с использованием хорошо знакомой среды разработки.
- Отладка задачи с помощью хорошо знакомой среды разработки с широкими возможностями.
Сводка
В дополнение к преимуществам, перечисленным в Тестовое задание , идея BuildSolution имеет то преимущество, что новым разработчикам, возможно, легкопроект для понимания и редактирования системы сборки.
Какие минусы вы видите для идеи BuildSolution?