当前位置: 首页 > 知识库问答 >
问题:

在TFS构建中的ReSharper代码质量分析中使用自定义模式

居飞扬
2023-03-14

我在开发机器上使用ReSharper2017.2.2和Visual Studio2017.5。

我使用的是TFS 2017更新3。

在TFS服务器上,安装了Visual Studio 2017.4和ReSharper CLT 2017.2.2。

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

更新1:我使用命令inspectcode.exe-o=“c:\temp\results.xml”--no-swea“c:\buildagent\thompson\_work\23\s\***.sln”通过控制台检查了代码分析的启动

在results.xml文件中,我找到了所需的行:

<Issue TypeId="StructuralSearch" Severity="ERROR" File="***.WebResources\WebResources\new_\js\forms\***.js" Offset="406-415" Line="13" Message="debugger" />

更新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)
    }
}
<?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>

我的自定义模式有severity=“invalid_severity”,它不在$severitylevels列表中。

共有1个答案

王长卿
2023-03-14

由于它在命令行中工作得很好,似乎这个问题与TFS端无关,可能更多的是与三方任务有关。

如果这不能用于Resharper代码质量分析任务,则可以在生成任务期间通过使用命令行任务或自定义扩展直接调用InspectCode.exe命令。然后将结果文件发布到TFS。

此外,作为一种解决办法,您还可以使用日志命令从powershell脚本返回警告和错误。使用task.logissue type=error,您可能会导致构建任务失败,然后构建失败。

 类似资料:
  • 我有一个全新的TFS2018测试安装,并尝试运行一个maven构建与sonarqube分析。 有什么不对劲的暗示吗?现在有人知道如何直接向SonarQube提交问题了吗。我可以在以下位置查看问题:https://jira.sonarsource.com/browse/VSTS/?selectedTab=com.atlassian.jira.jira-项目插件:摘要面板 但我没有找到报告的方法。

  • 我可以请求一些帮助吗?我在做代码学院,我完全卡住了。我正在尽我最大的能力遵循指示,但如果有人能为我的问题提供帮助,我将不胜感激。 说明书注意到,如果没有构造函数,我们需要3行代码才能制作出《哈利·波特》,一个代表《哈利·波特第一册》的对象。 然后在第7行中,我们介绍了Book对象的构造函数,其中我们将页面和作者属性作为参数传入。 使用这个构造器制作《霍比特人》,一本由“J.R.R.托尔金”写的书,

  • 使用耦合度量来支持系统架构 大多数设计良好的软件架构都趋向于支持系统的可扩展性、可维护性和可靠性。遗憾的是,对质量问题的疏忽极可能使软件架构师的努力白费。在追求代码质量 系列的这一期文章中,质量专家 Andrew Glover 解释如何持续地监视并纠正会影响软件架构的长期生存能力的代码质量方面。 上一期文章中,我展示了如何使用代码度量来评估代码质量。尽管在那一期介绍的圈复杂度针对低级细节,如方法中

  • 我正在开发一个模型来评估动物种群控制的不同干预措施。我试图使用自定义分发来分配代理在创建或稍后添加到总体时应该处于的状态。 我做了以下工作 我创建了一个选项列表,列出了模型中的所有状态 我为初始人口创建了一个自定义分布,使用选项列表为每个州分配代理的初始人口分布3我为移民创建了第二个自定义分布(因为代理将在整个模拟过程中定期添加到人口中),使用相同的选项列表但具有不同的分布值。 对于第一次超时转换

  • 如何定制AWS Codestar/Cloudformation模板以创建特定的代码构建项目 像lambda这样的资源很好SAM 问题是,当我试图添加代码构建设置时,使用Yaml作为模板的特定docker映像(需要使用Python3.7而不是默认的2.7)。yml构建规范。yml Lambda创建成功,但是代码构建部分被忽略,并且什么也没有发生 编辑2我能够编辑CF模板来强制创建另一个代码构建项目。

  • Liniting是一个检查你代码风格和编码错误的一个过程,对于python中有很多流行的linting工具,我们这里使用Flake8 - 融合了pep8和pyflakes两种linting工具。 首先,在requrements.txt文件中添加flake8依赖包: flake8==3.5.0 同样的,重新构建容器: (tdd3)$ docker-compose -f docker-compose