Срок сдачи: второе занятие
Модульный тест – фрагмент кода (метод), написанный разработчиком, и проверяющий правильность отдельного модуля (метода) исходного кода программы. Цель модульного тестирования – изолировать отдельные части программы и показать, что по отдельности эти части работоспособны. Модульное тестирование позже позволяет программистам проводить рефакторинг, будучи уверенными, что модуль по-прежнему работает корректно. Для отделения модулей друг от друга используют так называемые mock-объекты – фиктивные объекты, предназначенные исключительно для тестирования.
Введение зависимости от внешних модулей или данных превращает модульные тесты в интеграционные.
Возможность создания модульных тестов встроена в популярные среды разработки, такие как Visual Studio и Eclipse.
Задание: создать не менее пяти (на каждого члена команды) осмысленных модульных или интеграционных тестов и добиться их успешного выполнения.
Тесты должны включать
Убедитесь, что включили модульные и интеграционные тесты в репозитарий системы управления версиями, так как они потребуются в дальнейшем при настройке системы непрерывной интеграции.
Срок сдачи: третье занятие
Чтобы определить местоположение MSBuild.exe в системе, запустите Visual Studio Command Prompt и выполните команду
where msbuild
Эта команда выведет список всех расположений утилиты MSBuild.exe, например:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe
Находясь в папке проекта, выполните команду
c:\windows\microsoft.net\framework\v4.0.30319\msbuild.exe
(для .NET Framework v4.0.30319).
Задание: cобрать проект (получить исполняемый файл или установочный пакет) из командной строки.
Для выполнения модульных тестов используется утилита MSTest.exe. Определить её расположение можно используя команду where
:
> where mstest
c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe
Для выполения тестов необходимо предварительно выполнить сборку проекта, содержащего тесты (допустим, он называется "TestProject"):
msbuild "TestProject\TestProject.csproj"
Команда для выполнения тестов:
mstest "/testcontainer:TestProject\bin\Debug\TestProject.dll"
Задание: запустить тесты из командной строки.
Срок сдачи: четвёртое занятие
Для того чтобы выполнять построение проекта и его тестирование с помощью одной команды в командной строке, необходим конфигурационный файл. Пример такого файла для MSBuild в Visual Studio 2010:
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Test">
<ItemGroup>
<BuildArtifactsDir Include="BuildArtifacts\" />
<SolutionFile Include="Project.sln" />
</ItemGroup>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
<BuildPlatform Condition=" '$(BuildPlatform)' == '' ">Any CPU</BuildPlatform>
</PropertyGroup>
<Target Name="Init" DependsOnTargets="Clean">
<MakeDir Directories="@(BuildArtifactsDir)" />
</Target>
<Target Name="Clean">
<RemoveDir Directories="@(BuildArtifactsDir)" />
</Target>
<Target Name="Compile" DependsOnTargets="Init">
<MSBuild Projects="@(SolutionFile)" Targets="Rebuild"
Properties="OutDir=%(BuildArtifactsDir.FullPath);Configuration=$(Configuration);Platform=$(BuildPlatform)" />
</Target>
<Target Name="Test" DependsOnTargets="Compile">
<PropertyGroup>
<TestSuccess>1</TestSuccess>
</PropertyGroup>
<Exec Command='"$(VS100COMNTOOLS)..\IDE\mstest.exe" /testcontainer:@(BuildArtifactsDir)\TestProject.dll' >
<Output TaskParameter="ExitCode" PropertyName="TestSuccess"/>
</Exec>
</Target>
</Project>
Запуск построения:
msbuild Project.msbuild
Результат:
...
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:03.36
Задание: разработать конфигурационный файл MSBuild для сборки и тестирования своего проекта и проверить его работу в командной строке.
Убедитесь, что включили конфигурационный файл в репозитарий системы управления версиями, так как он потребуется при настройке системы непрерывной интеграции.
Срок сдачи: пятое занятие