lys*_*cid 19 teamcity stylecop
有没有人在TeamCity中运行StyleCop有什么成功?
我知道StyleCop支持命令行模式,但我不确定它将如何集成到TeamCity的报告输出中.
我已经查看了这个插件:https://bitbucket.org/metaman/teamcitydotnetcontrib/src/753712db5df7/stylecop/
但无法让它运行.
我正在使用TeamCity 6.5.1(最新版).
dev*_*tal 16
我不知道你对MSBuild有多熟悉,但你应该能够在TC 6及更高版本中添加一个新的Build Step,并将MSBuild设置为构建运行器,并将其指向.proj文件,该文件执行类似于下列:
<Target Name="StyleCop">
<!-- Create a collection of files to scan -->
<CreateItem Include="$(SourceFolder)\**\*.cs">
<Output TaskParameter="Include" ItemName="StyleCopFiles" />
</CreateItem>
<StyleCopTask
ProjectFullPath="$(MSBuildProjectFile)"
SourceFiles="@(StyleCopFiles)"
ForceFullAnalysis="true"
TreatErrorsAsWarnings="true"
OutputFile="StyleCopReport.xml"
CacheResults="true" />
<Xslt Inputs="StyleCopReport.xml"
RootTag="StyleCopViolations"
Xsl="tools\StyleCop\StyleCopReport.xsl"
Output="StyleCopReport.html" />
<XmlRead XPath="count(//Violation)" XmlFileName="StyleCopReport.xml">
<Output TaskParameter="Value" PropertyName="StyleCopViolations" />
</XmlRead>
<Error Condition="$(StyleCopViolations) > 0" Text="StyleCop found $(StyleCopViolations) broken rules!" />
</Target>
Run Code Online (Sandbox Code Playgroud)
如果您不想使StyleCop错误的构建失败,那么请将Error任务设置为Warning.
您还需要将以下内容添加到.proj文件中:
<UsingTask TaskName="StyleCopTask" AssemblyFile="$(StyleCopTasksPath)\Microsoft.StyleCop.dll" />
Run Code Online (Sandbox Code Playgroud)
Microsoft.StyleCop.dll 包含在StyleCop安装中,您需要适当地设置路径.
要在TeamCity中查看输出的StyleCop结果,您需要使用适当的.xsl文件(在上面的脚本中称为StyleCopReport.xsl)将.xml StyleCop报告转换为HTML.
要在TeamCity中显示HTML文件,您需要从此.html输出创建工件,然后在构建结果中包含该工件.
您是否知道teamcity仅提供来自msbuild的特定属性?无需服务消息,请参阅:http: //confluence.jetbrains.net/display/TCD65/MSBuild+Service+Tasks
所以你不必添加自定义报告页面.使用构建统计信息,例如
<TeamCitySetStatus Status="$(AllPassed)" Text="Violations: $(StyleCopViolations)" />
Run Code Online (Sandbox Code Playgroud)
然后你可以记录统计数据:
<TeamCityReportStatsValue Key="StyleCopViolations" Value="$(StyleCopViolations)" />
Run Code Online (Sandbox Code Playgroud)
然后创建一个要显示的自定义图表,并且您已经在msbuild输出中存在违规.编辑main-config.xml并添加:
<graph title="Style Violations" seriesTitle="Warning">
<valueType key="StyleCopViolations" title="Violations" buildTypeId="bt20"/>
</graph>
Run Code Online (Sandbox Code Playgroud)
buildTypeId ="bt20"bt20是你的风格版本.
我迟到了这个节目,但实现这一目标的一个非常简单的方法是在任何你想用StyleCop分析的项目中安装StyleCop.MSBuild NuGet包.
安装软件包后,StyleCop分析将在您执行的每个构建上运行,无论它在何处或如何调用,例如VS,命令行,msbuild,psake,rake,fake,bake,nant,build server等.无需特殊操作是必要的.
如果你希望在StyleCop规则被破坏时构建失败,你只需要在每个适当的构建配置下将以下元素添加到项目文件中,例如:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>
...
Run Code Online (Sandbox Code Playgroud)
同样,这将适用于每个构建,无论它在何处以及如何被调用.
| 归档时间: |
|
| 查看次数: |
10416 次 |
| 最近记录: |