标签: code-analysis

嵌入式C++项目的代码覆盖率分析

我最近开始研究一个非常大的C++项目,在完成90%的实现后,确定他们需要在测试期间展示100%的分支覆盖率.该项目托管在一个嵌入式平台(Green Hills Integrity)上.我正在寻找StackOverflow上其他人在类似环境中使用代码覆盖产品的建议和经验.我对这些类型的工具的正面和负面评论感兴趣.

testing embedded code-analysis

7
推荐指数
1
解决办法
6491
查看次数

是否有Delphi库返回项目的所有有效源路径?

对于静态代码分析工具,有必要了解给定Delphi项目的所有有效源路径,这些路径在项目级别和全局IDE配置中定义.

是否有可以收集此类项目信息的Delphi库?

据我所知,Delphi IDE的注册表设置可以在不同的地方,以支持多种配置.但是对于IDE注册表位置和项目文件的给定组合,应该可以收集源路径.

编辑:另一种解决方案是使用--depends开关.这将导致dcc32.exe写入一个".d"文件,其中包含项目的所有dcu文件名(以及所有依赖项),包括路径名.但是,文件列表包含已编译的单元,因此它不是原始问题的正确解决方案.

delphi code-analysis path delphi-2009

7
推荐指数
2
解决办法
3174
查看次数

7
推荐指数
3
解决办法
1万
查看次数

处理对象的代码分析友好方式

作为Visual Studio 2010(主要是C#4.0)开发标准的一部分,我们启用了代码分析.当我正在审查最近为新项目提交的代码时,我看到了很多

CA2000:Microsoft.Reliability:在方法'XYZ'中,对象'ABC'不沿所有异常路径放置.在对所有引用超出范围之前,调用System.IDisposable.Dispose对象'ABC'.

警告.问题是,我所做的一切似乎都没有消除警告 - 我花了几个小时搜索网络并尽我所能.

首先,让我明确一点,我不是在谈论将一个简单的使用块放入正确处理局部变量 - 这不是问题.在我的情况下,当对象由方法返回或分配给方法中的另一个对象时,会出现这些警告.

这是一个代码示例,其中包含四个此类警告:

public void MainMethod()
{
    var object1 = CreateFirstObject();    // Warning here
    var object2 = CreateSecondObject();   // Warning here

    SomeCollectionProperty.Add(object1);
    SomeCollectionProperty.Add(object2);
}

private SomeObject CreateFirstObject()
{
    var theObject = new SomeObject()      // Warning here
    {
        FirstProperty = "some value",
        // ...
    };

    return theObject;
}

private SomeOtherObject CreateSecondObject()
{
    var theObject = new SomeOtherObject() // Warning here
    {
        FirstProperty = "a different value",
        // ...
    };

    return theObject;
}
Run Code Online (Sandbox Code Playgroud)

我已经评论了警告发生的地方. …

.net c# code-analysis idisposable static-code-analysis

7
推荐指数
1
解决办法
4914
查看次数

FxCop和代码分析规则

我最近开始在Visual Studio中的项目中使用代码分析.我创建了一个自定义规则集,用于包含两个Microsoft定义的规则集的所有项目.我一直在努力将FxCop集成到CI构建过程中,以使未通过所有规则的构建失败.对我来说真正奇怪的是我不能使用我的规则集来定义FxCop扫描代码的规则.我如何使Visual Studio的代码分析规则符合FxCop的规则?

.net teamcity code-analysis fxcop visual-studio

7
推荐指数
1
解决办法
6125
查看次数

为XAML创建自定义代码分析规则

我有兴趣为Code Analysis(Visual Studio 2010及更高版本)创建自定义规则,专门针对XAML.

我读过有关创建自定义规则,甚至有关的FxCop + XAML工具包,但后来现在已被存档,并且不支持的FxCop(即代码分析与工程版)的最新版本.我也看过其他工具,比如NDepend,但它似乎也不支持这个.

我要做的自定义规则的示例: 确保XAML中没有元素将Width属性设置为常量.

关于如何执行此操作的任何想法VS 2012/VS 2013(任何与Visual Studio集成的外部工具也是一种选择)?

xaml unit-testing code-analysis visual-studio-2012 visual-studio-2013

7
推荐指数
1
解决办法
790
查看次数

使代码分析停止关于某个变量名称的警告

我有一个名为的变量allowedZHs.ZH是域特定的缩写.ZHs是它的复数形式.我想继续使用复数形式.我发现它比"正确"形式更具表现力" Zhs".
我试图通过添加代码分析字典来告诉代码分析.这适用于单数形式" ZH",但它不适用于复数形式.
我仍然收到警告CA1704.

我尝试将其添加为一个公认的单词并将其添加为首字母缩略词:

<Dictionary>
  <Words>
    <Recognized>
      <Word>ZHs</Word>
    </Recognized>
  </Words>
  <Acronyms>
    <CasingExceptions>
      <Acronym>ZHs</Acronym>
    </CasingExceptions>
  </Acronyms>
</Dictionary>
Run Code Online (Sandbox Code Playgroud)

我有什么想法我做错了吗?

.net c# code-analysis

7
推荐指数
1
解决办法
519
查看次数

C#可变性 - VS代码分析给我CA2104?似乎......很穷.我误会了吗?

在C#中,我想制作"智能"枚举,有点像Java中那样,其中有更多信息附加到枚举值而不仅仅是底层int.我发生了一个创建类(而不是枚举)的方案,如下面的简单示例所示:

public sealed class C
{
    public static readonly C C1 = new C(0, 1);
    public static readonly C C2 = new C(2, 3);

    private readonly int x;
    private readonly int y;

    private C(int x, int y)
    {
        this.x = x;
        this.y = y;
    }

    public int X
    {
        get
        {
            return this.x;
        }
    }

    public int Y
    {
        get
        {
            return this.y;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行Visual Studio的"代码分析器"时,它会向我发出警告C2104,"不要声明只读可变引用类型".

我明白为什么你一般不想声明只读可变引用类型,但是...我的类不可变,是吗?

阅读警告的文档,似乎他们只是假设任何只读引用类型是可变的.例如,它表示如果类型确实是不可变的,那么请随意抑制此警告.事实上它给了我同样的警告,以下更简单的类:

public sealed class C
{
    public static readonly C C1 …
Run Code Online (Sandbox Code Playgroud)

c# code-analysis immutability mutability visual-studio

7
推荐指数
1
解决办法
1035
查看次数

Python - 副作用/纯度分析工具?

在Python中是否存在用于副作用/纯度分析的现有工具,类似于Java中的http://jppa.sourceforge.net?

python code-analysis side-effects

7
推荐指数
1
解决办法
298
查看次数

在构建过程中找出PlatformNotSupportedException

我正在开发一个要Windows使用的项目.NET Core 2.2。我将在Linux明年构建和支持它。我正在寻找一种方法来标记错误并破坏构建(如果PlatformNotSupportedException在代码中使用的话)。

我见过.NET API分析器,该分析器仍处于预发布阶段,并且自去年以来未更新。

c# code-analysis cross-platform .net-core

7
推荐指数
2
解决办法
218
查看次数