我正在使用声纳测量代码质量.我不知道的一件事是使用Cobertura测量代码覆盖率的步骤.
我按照http://cobertura.sourceforge.net/anttaskreference.html中的步骤操作,并能够生成xml文件.如何将这些xml文件导入SONAR?
在SONAR中使用Cobertura有更简单的方法吗?
我在与SONAR服务器不同的服务器上运行代码覆盖(Cobertura).两台服务器都在LINUX下运行.
谢谢您的帮助!
我在JAVA有一个项目,我用声纳分析.我拥有的一些java包都在源文件夹下.我也有一些测试文件,我在不同的文件夹下.现在,在Sonar中,我以不同的结构组织我的项目,即对于项目"搜索",我只想包括"搜索"包.使用sonar.exclusion属性很容易实现这些排除.不过,我的问题是测试怎么样?我怎样才能排除一些包?因为在我的测试中,即使我的源和测试文件夹使用相同的结构,当我指定"sonar.exclusions"时,测试包也不会自动排除.
我的文件夹结构:
/src/com/domain/
-- search/
-- utils/
-- pooling/
-- category/
/test/src/com/domain/
-- utils/
-- pooling/
Run Code Online (Sandbox Code Playgroud)
声纳属性:
<property name="sonar.sources" value="${path}/src" />
<property name="sonar.tests" value="${path}/test/src" />
<property name="sonar.exclusions" value="com/domain/utils/**/*,com/domain/pooling/**/*,com/domain/category/**/*" />
Run Code Online (Sandbox Code Playgroud)
所以,我试图只包括"搜索"包.上面的代码工作方式使得SONAR只分析我的"搜索"包.可以在SONAR"组件"选项卡中看到此包.不幸的是,除了"搜索"组件,我还可以看到"util"和"pooling"组件.我做了一些测试,并确定这两个组件(utils和pooling)是"sonar.tests"属性的结果.只是注意,尽管"util"和"pooling"显示在组件中,但SONAR在它们下面显示零文件.所以回到我的问题,无论如何,我可以做到排除"util"和"汇集"在"组件"下显示?也许使用属性(即声纳测试排除)?
顺便说一句,我正在使用SONAR 2.11并在Red Hat linux下运行.我正在使用SONAR-TASK 1.2.
任何帮助都受到欢迎和赞赏!谢谢!
我试图使用LibXML从XML读取标签.我可以打印所有标签; 但是,由于某种原因,它还会打印"text"标签,这不是我的XML的一部分.任何人都可以向我解释是什么导致这种行为?有什么工作吗?如果下次我有一个带有"text"标签的XML标签,那么如何将该"text"标签与LibXML生成的额外"text"标签区分开来?
这是我的XML文件:
<?xml version="1.0"?>
<log>
<logentry
revision="935">
<author>darwin</author>
<date>2011-06-28T01:00:18.997106Z</date>
<msg>reintegrate branch</msg>
</logentry>
<logentry
revision="931">
<author>darwin</author>
<date>2011-06-21T22:15:01.881607Z</date>
<msg>reintegrate branch</msg>
</logentry>
</log>
Run Code Online (Sandbox Code Playgroud)
我使用以下代码阅读XML:
my $parser = XML::LibXML->new();
my $doc = $parser->parse_string($svnInfo);
my $root = $doc->getDocumentElement();
my @nodes=$root->childNodes();
foreach my $child(@nodes) {
my $name = $child -> nodeName();
my @atts = $child -> getAttributes();
print "\n${name} (";
print ")\n";
}
Run Code Online (Sandbox Code Playgroud)
这是我的输出:
text ()
logentry ()
text ()
logentry ()
text ()
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
我在perl中有一个共享模块.主程序需要两个文件,第一个是共享文件(让我们称之为'X'),第二个是'包'文件.文件'X'也使用'require'包含在'package'文件中.当我编译这个程序时,它给我以下错误:
Undefined subroutine &main::trim called at testing.pl line 8.
Run Code Online (Sandbox Code Playgroud)
我的理解是perl找不到trim()模块.如果我不包含包文件,那么这将运行没有任何问题.
任何人都可以解释这个问题吗?
这些是我的代码:
主程序:testing.pl
#!/usr/bin/perl -w
use strict;
use postgres;
require "shared.pl";
trim("als");
Run Code Online (Sandbox Code Playgroud)
包文件:postgres.pm
#!/usr/bin/perl
package postgres;
use strict;
use DBI;
require "shared.pl";
1;
Run Code Online (Sandbox Code Playgroud)
共享文件:shared.pl
#!/usr/bin/perl
# =============
# shared module
# =============
use strict;
sub trim($)
{
}
1;
Run Code Online (Sandbox Code Playgroud)