.NET + TeamCity: частные средства доступа не скомпилированы - PullRequest
0 голосов
/ 27 мая 2009

Я использую Team City Pro (v4.0.2 build 8222) для файла sln VS2008.

Прямо сейчас я сталкиваюсь с проблемой, когда автоматически сгенерированный код для закрытых методов доступа в тестовом проекте не генерируется и вызывает ошибки компиляции из-за невозможности найти эти (автоматически сгенерированные) классы.

По умолчанию используется sln2008.

Любая конфигурация должна быть изменена? Я проверил журнал сборки VS, и он не показывает записи msbuild для автоматически сгенерированных классов. DLL для автоматически сгенерированных классов только там.

Примечание. Мне известно, что тестирование частных методов - лучший способ выполнить юнит-тестирование.

Ответы [ 2 ]

0 голосов
/ 17 июня 2009

Убедитесь, что версия MSBuild 3.5 и MSBuild ToolsVersion 3.0 или 3.5. альтернативный текст http://www.deploylx.com/so/tcbuildrunner.jpg

Выполнение тестов NUnit с MSBuild

    <PropertyGroup>
        <NUnitCommandArgs Condition="'$(NUnitCommandArgs)' == ''">$(NUnitCommandArgs) /noshadow /timeout=30000</NUnitCommandArgs>
        <NUnitCommandArgs Condition="'$(TestGroupInclude)' != ''">$(NUnitCommandArgs) /include=@(IncludeTestGroups, ',')</NUnitCommandArgs>
        <NUnitCommandArgs Condition="'$(TestGroupExclude)' != ''">$(NUnitCommandArgs) /exclude=@(ExcludeTestGroups, ',')</NUnitCommandArgs>
    </PropertyGroup>

    <ItemGroup>
        <NUnitAddinFiles Include="$(teamcity_dotnet_nunitaddin)-2.5.0.*" />
    </ItemGroup>

    <ItemGroup>
        <NUnitRuntimeFiles Include="$(ToolsPath)\nUnit\nunit.core.dll" />
        <NUnitRuntimeFiles Include="$(ToolsPath)\nUnit\nunit.core.interfaces.dll" />
        <NUnitRuntimeFiles Include="$(ToolsPath)\nUnit\log4net.dll" />
    </ItemGroup>

    <Target Name="RunUnitTests" >   

        <Message Text="Include=@(IncludeTestGroups), Exclude=@(ExcludeTestGroups)" Importance="High" />

        <MakeDir Directories="$(ToolsPath)\addins" />

        <Copy SourceFiles="@(NUnitAddinFiles)"
              DestinationFolder="$(ToolsPath)\addins"
              />

        <Copy SourceFiles="@(NUnitRuntimeFiles)"
              DestinationFolder="$(TestFolder)" />

        <Exec
            WorkingDirectory="$(ToolsPath)\nUnit\"
            Command="&quot;$(ToolsPath)\nUnit\nunit-console-x86.exe&quot; &quot;%(TestAssemblies.FullPath)&quot; $(NUnitCommandArgs)"
            />

    </Target>
0 голосов
/ 14 июня 2009

AFAIK, TeamCity не использует утилиту msbuild для построения решения. Разве вы не хотите спрашивать разработчиков TeamCity ?

...