開発マシンでReSharper 2017.2.2をVisual Studio 2017.5とともに使用します。私は、TFSサーバー上で更新3.ReSharperでのカスタムパターンの使用TFSビルドでのコード品質分析
TFS 2017を使用してい
は、Visual Studioの2017.4とReSharperのCLT 2017年2月2日には、インストールされています。
私はTFSビルドを使用しています。
私の目標は、ソリューションを構築する際にコード分析を行うことです。
Resharper Code Quality Analysisタスクを使用します。私は、ソリューションのルートにあるsln.DotSettingsファイルを使用して構成できます。
標準コードチェックReSharperは正常に動作します。私はReSharper -> Options | Code Inspection -> Custom patterns
を使用し、このために、ここでhttps://marketplace.visualstudio.com/items?itemName=alanwales.resharper-code-analysis
このルールはVisual Studioでうまくいきます。私はsln.DotSettingsにこのルールを保存すると、次の行が追加されます。
<s:Boolean x:Key="/Default/PatternsAndTemplates/StructuralSearch/Pattern/=4E6B3830DEEA6148909C23CD21C96E28/@KeyIndexDefined">True</s:Boolean>
<s:String x:Key="/Default/PatternsAndTemplates/StructuralSearch/Pattern/=4E6B3830DEEA6148909C23CD21C96E28/LanguageName/@EntryValue">JAVA_SCRIPT</s:String>
<s:Boolean x:Key="/Default/PatternsAndTemplates/StructuralSearch/Pattern/=4E6B3830DEEA6148909C23CD21C96E28/MatchCatchClauseWithoutExceptionFilter/@EntryValue">False</s:Boolean>
<s:String x:Key="/Default/PatternsAndTemplates/StructuralSearch/Pattern/=4E6B3830DEEA6148909C23CD21C96E28/SearchPattern/@EntryValue">debugger</s:String>
<s:String x:Key="/Default/PatternsAndTemplates/StructuralSearch/Pattern/=4E6B3830DEEA6148909C23CD21C96E28/Severity/@EntryValue">ERROR</s:String></wpf:ResourceDictionary>
私はdebugger
とJSコード、特別に追加された行に。しかし私は私のカスタムパターンについて警告を出すことはありません。
TFSのResharperコード品質分析サポートでカスタムパターンを使用していますか?
UPDATE 1:私はコマンドを使用して、コンソール経由でコード分析の開始を確認:
<Issue TypeId="StructuralSearch" Severity="ERROR" File="***.WebResources\WebResources\new_\js\forms\***.js" Offset="406-415" Line="13" Message="debugger" />
:Results.xmlファイルでInspectCode.exe -o="C:\temp\Results.xml" --no-swea "C:\BuildAgent\Thompson\_work\23\s\***.sln"
、私は必要な行を見つけましたUPDATE 2:スクリプトコードRunResharperCodeAnalysisTool.ps1
を見ました。
...
$severityLevels = @{"Hint" = 0; "Suggestion" = 1; "Warning" = 2; "Error" = 3}
...
foreach($issue in $issuesElements) {
$severity = @($issuesTypesElements | Where-Object {$_.Attributes["Id"].Value -eq $issue.Attributes["TypeId"].Value})[0].Attributes["Severity"].Value
$severityLevel = $severityLevels[$severity]
if($severityLevel -ge $severityLevels[$failBuildLevelSelector]) {
$item = New-Object -TypeName PSObject -Property @{
'Severity' = $severity
'Message' = $issue.Attributes["Message"].Value
'File' = $issue.Attributes["File"].Value
'Line' = $issue.Attributes["Line"].Value
}
$filteredElements.Add($item)
}
}
Results.xmlファイルには、次の行があります:
<?xml version="1.0" encoding="utf-8"?>
<!-- Generated by JetBrains Inspect Code 2017.2.2 -->
<Report ToolsVersion="109.0.20171006.123742">
<Information>
<Solution>..\..\BuildAgent\Thompson\_work\23\s\***\***.sln</Solution>
<InspectionScope>
<Element>Solution</Element>
</InspectionScope>
</Information>
<IssueTypes>
<IssueType Id="StructuralSearch" Category="Structural Search Highlightings" CategoryId="StructuralSearch" Description="Structural Search Pattern" Severity="INVALID_SEVERITY" />
<IssueType Id="WebConfigErrors" Category="WebConfig Errors" CategoryId="WebConfigErrors" Description="" Severity="ERROR" />
</IssueTypes>
<Issues>
<Project Name="***">
<Issue TypeId="WebConfigErrors" File="***.WebResources\Web.config" Offset="531-650" Line="17" Message="Invalid module qualification: Failed to resolve assembly Microsoft.CodeDom.Providers.DotNetCompilerPlatform" />
<Issue TypeId="WebConfigErrors" File="***.WebResources\Web.config" Offset="916-1035" Line="20" Message="Invalid module qualification: Failed to resolve assembly Microsoft.CodeDom.Providers.DotNetCompilerPlatform" />
<Issue TypeId="StructuralSearch" Severity="ERROR" File="***.WebResources\WebResources\new_\js\forms\***.js" Offset="406-415" Line="13" Message="debugger" />
</Project>
</Issues>
</Report>
マイカスタムパターン$severityLevels
リストにないSeverity="INVALID_SEVERITY"
を持っているこのファイルに次の行があります。
こんにちはKolya、これに関するアップデートは、あなたがそれを理解しましたか? –
@ PatrickLu-MSFTこんにちは。あなたの答えは役に立ちます。私は拡張開発者の答えを待っていました。 –