我正在为VS2008 sln文件运行Team City Pro(v4.0.2 build 8222)。
现在我遇到一个问题,即测试项目中的私有访问器的自动生成代码没有生成,并且由于无法找到那些(自动生成的)类而导致编译错误。
构建运行器是默认的sln2008。
是否需要更改任何配置?我检查了VS构建日志,它没有显示自动生成的类的任何msbuild条目。自动生成的类的DLL就在那里。
注意:我知道测试私有方法是进行单元测试的最佳方法。
答案 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=""$(ToolsPath)\nUnit\nunit-console-x86.exe" "%(TestAssemblies.FullPath)" $(NUnitCommandArgs)"
/>
</Target>