我有一个checkstyle抑制滤波器设置(例如,忽略单元测试代码中的幻数).
抑制xml文件与checkstyle xml文件位于同一文件夹中.但是,这个文件实际上有所不同:在我的Windows开发盒上它位于Linux CI服务器上的d:\ dev\shared\checkstyle\config中,它将位于/ root/repo/shared/checkstyle/config上另一个开发人员盒子上它可能在任何地方(他们检查他们的svn回购).
唯一"一致"的事情是抑制文件始终与checkstyle xml文件位于同一文件夹中.我无法弄清楚如何确保始终一致地拾取此文件.另外我不知道为什么checkstyle不支持checkstyle xml文件中的嵌入式抑制.
任何帮助?
我们使用Visual Studio Database Edition(DBPro)来管理我们的架构.这是一个很棒的工具,它可以做很多事情,可以根据规则分析我们的模式和T-SQL代码(很像FxCop用C#代码做的事情),并将某些事情标记为警告和错误.
一些示例规则可能是每个表必须有一个主键,列名中没有下划线,每个存储过程必须有注释等.
DBPro内置的规则数量相当少,有点奇怪.幸运的是,DBPro有一个允许开发人员创建自己的API.我很好奇您和您的数据库团队将创建的规则类型(架构规则和T-SQL规则).查看一些规则可能有助于我们决定应该考虑什么.
谢谢 - 兰迪
我最近从Visual Studio 2008将项目升级到Visual Studio 2010.
在Visual Studio 2008中,此代码分析规则不存在.
现在我不确定我是否应该使用这条规则.
我正在构建一个开源库,因此让人们免于犯错似乎很重要.但是,如果我要做的就是ArgumentNullException在参数出现时抛出null,它似乎编写无用的代码,因为ArgumentNullException即使我不编写该代码也会被抛出.
编辑:此外,还有一个性能问题需要解决.检查null每种公共方法都可能导致性能问题.
我应该删除该规则还是修复违规行为?
考虑这段代码
private MailMessage GetMailMessageFromMailItem(Data.SystemX.MailItem mailItem)
{
var msg = new MailMessage();
foreach (var recipient in mailItem.MailRecipients)
{
var recipientX = Membership.GetUser(recipient.UserKey);
if (recipientX == null)
{
continue;
}
msg.To.Add(new MailAddress(recipientX.Email, recipientX.UserName));
}
msg.From = new MailAddress(ConfigurationManager.AppSettings["EmailSender"],
ConfigurationManager.AppSettings["EmailSenderName"]);
msg.Subject = sender.UserName;
if (!string.IsNullOrEmpty(alias)) msg.Subject += "(" + alias + ")";
msg.Subject += " " + mailItem.Subject;
msg.Body = mailItem.Body;
msg.Body += Environment.NewLine + Environment.NewLine + "To reply via Web click link below:" + Environment.NewLine;
msg.Body += ConfigurationManager.AppSettings["MailPagePath"] + "?AID=" + ContextManager.AccountId …Run Code Online (Sandbox Code Playgroud) MSBUILD : error : CA0055 : Could not unify the platforms (mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, mscorlib, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)
Run Code Online (Sandbox Code Playgroud)
我正在加载的唯一外部库是RIA 1.0 SP2,我认为SL5应该没问题?
如何检查程序集以查看链接到mscorlib v.2.0.5.0的程序集?
编辑: RIA程序集与mscorlib 2.0.5.0链接,我认为这是错误的原因.现在我没有进行代码分析,这非常糟糕.任何已知的解决方法?
我有一个声明事件的接口
interface IMyInterface
{
event SomeHandler MyEvent1;
event SomeHandler MyEvent2;
...
}
Run Code Online (Sandbox Code Playgroud)
但是当我启用代码分析规则CA1040:避免空接口时,它会抱怨我的界面违反了这个规则,任何想法如何解决它?
我想用sonarqube检查我的Ruby on Rails应用程序.我已经添加了可以与Ruby一起使用的Web插件,但是在sonarqube exectution期间我收到以下错误:
app/controllers/course_statistics_controller.rb
java.lang.NullPointerException: null
at org.sonar.plugins.web.checks.sonar.UnsupportedTagsInHtml5Check.isUnsupportedTag(UnsupportedTagsInHtml5Check.java:77) ~[na:na]
at org.sonar.plugins.web.checks.sonar.UnsupportedTagsInHtml5Check.startElement(UnsupportedTagsInHtml5Check.java:71) ~[na:na]
at org.sonar.plugins.web.visitor.HtmlAstScanner.scanElementTag(HtmlAstScanner.java:117) ~[na:na]
at org.sonar.plugins.web.visitor.HtmlAstScanner.scanElement(HtmlAstScanner.java:96) ~[na:na]
at org.sonar.plugins.web.visitor.HtmlAstScanner.scan(HtmlAstScanner.java:80) ~[na:na]
at org.sonar.plugins.web.visitor.HtmlAstScanner.scan(HtmlAstScanner.java:59) ~[na:na]
at org.sonar.plugins.web.core.WebSensor.analyse(WebSensor.java:93) ~[na:na]
at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:59) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:51) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.batch.phases.DatabaseModePhaseExecutor.execute(DatabaseModePhaseExecutor.java:120) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:264) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:235) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:230) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:220) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.batch.scan.ScanTask.scan(ScanTask.java:57) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.batch.scan.ScanTask.execute(ScanTask.java:45) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.batch.bootstrap.TaskContainer.doAfterStart(TaskContainer.java:135) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77) [sonar-batch-maven-compat-5.1.jar:na]
at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:158) [sonar-batch-maven-compat-5.1.jar:na]
at …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我正在使用的自定义LLVM传递中使用LLVM内置MemoryDependenceAnalysis(MDA)的结果.给定一些从内存中读取的指令(load例如,a),我希望MDA告诉我所有先前的指令,这些指令可能有定义或Clobbered它.如果我对MDA文档的理解正确地为我服务,MDA应该能够给我这个信息.但是,我很难从中获得所需的精度.这是我一直在玩的简单测试程序的相关片段:
%1 = alloca i32, align 4
%result = alloca i32, align 4
%x = alloca i32, align 4
%xp = alloca i32*, align 8
store i32 0, i32* %1
store i32 5, i32* %result, align 4, !dbg !14
store i32 7, i32* %x, align 4, !dbg !16
store i32* %x, i32** %xp, align 8, !dbg !19
%2 = load i32* %x, align 4, !dbg !20
%3 = icmp eq i32 %2, 4, !dbg !20
br i1 %3, …Run Code Online (Sandbox Code Playgroud) 我使用Coverity扫描我的项目是否存在安全问题.
我想知道的是如何从缺陷提交后可用的分析结果中排除任何java测试(注意: 集成和单元).
我确实使用maven来构建项目,我使用标志排除了单元测试-Dmaven.skip.test=true.尽管这使得Coverity不进行扫描单元测试,但它仍然使扫描集成测试.
我项目中的所有集成测试都在文件标题中包含"Test"一词.因此,我开始查看Coverity中提供的过滤器部分.我当时尝试的是一个正则表达式(.*(!?(Test).*)$)但它没有用.似乎覆盖率支持两个匹配的字符(* and ?- 见下图),而它似乎不支持任何负面的环顾.
有没有什么好方法可以轻松,干净的方式完成这项任务?
我想在我的一个C#项目中安装代码分析,看来人们向.NET Core项目添加代码分析的方式是使用NuGet包Microsoft.CodeAnalysis.FxCopAnalyzers。
不过,我也发现了其他的NuGet包从Microsoft.CodeAnalysis命名空间,即Microsoft.CodeAnalysis,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.Features等等。
与其他软件包相比,这些其他软件包的目的是什么FxCopAnalyers?程序包的描述不是很清楚,所以我不知道它们的用例是什么。
code-analysis ×10
c# ×4
fxcop ×2
ca1062 ×1
checkstyle ×1
connect ×1
coverity ×1
dispose ×1
java ×1
llvm ×1
llvm-ir ×1
mailmessage ×1
regex ×1
ria ×1
ruby ×1
sonarqube ×1
sql ×1
sql-server ×1
t-sql ×1