.NET + TeamCity:不编译私有访问者

时间:2009-05-27 14:47:37

标签: .net unit-testing mstest teamcity

我正在为VS2008 sln文件运行Team City Pro(v4.0.2 build 8222)。

现在我遇到一个问题,即测试项目中的私有访问器的自动生成代码没有生成,并且由于无法找到那些(自动生成的)类而导致编译错误。

构建运行器是默认的sln2008。

是否需要更改任何配置?我检查了VS构建日志,它没有显示自动生成的类的任何msbuild条目。自动生成的类的DLL就在那里。

注意:我知道测试私有方法是进行单元测试的最佳方法。

2 个答案:

答案 0 :(得分:0)

AFAIK,TeamCity不使用msbuild实用程序来构建解决方案。你想要ask TeamCity developers吗?

答案 1 :(得分:0)

确保MSBuild版本为3.5,MSBuild ToolsVersion为3.0或3.5。 alt text http://www.deploylx.com/so/tcbuildrunner.jpg

使用MSBuild运行NUnit测试

    <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>