声纳扫描仪 - 3.1
Java 1.7
我尝试配置声纳属性以从多模块项目中获取覆盖范围。覆盖率是在路径下生成的:Module / build / jacoco / test.exec,所以我想根据文档将它添加到sonar.properties文件中:
https://docs.sonarqube.org/display/PLUG/Code+Coverage+by+Unit+Tests+for+Java+Project
In [6]: class DeclarativeABCMeta(DeclarativeMeta, abc.ABCMeta):
...: pass
...:
In [7]: Base = declarative_base(metaclass=DeclarativeABCMeta)
In [8]: class BaseAbstract(abc.ABC):
...: @abc.abstractmethod
...: def foo(self):
...: pass
...:
In [13]: class MyTable(Base, BaseAbstract):
...: __tablename__ = 'mytable'
...: id = Column(Integer, primary_key=True)
...:
In [14]: MyTable()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-14-1686a36a17c6> in <module>()
----> 1 MyTable()
TypeError: "Can't instantiate abstract class MyTable with abstract methods foo"
In [18]: class MyOtherTable(Base, BaseAbstract):
...: __tablename__ = 'myothertable'
...: id = Column(Integer, primary_key=True)
...: def foo(self):
...: return 'bar'
...:
In [19]: MyOtherTable()
Out[19]: <__main__.MyOtherTable at 0x7f01b4b592b0>
我正在尝试使用绝对路径的不同组合,但似乎声纳扫描仪根本看不到这个属性,并且总是查看默认路径。我总是在日志中获取信息:
sonar.java.coveragePlugin=jacoco
sonar.jacoco.reportPaths=**/build/jacoco/*.exec
它确实从文件中读取其他属性,如登录,密码,语言,来源等。
此外,该项目基于Gradle。
答案 0 :(得分:1)
您使用哪种版本的声纳?如果版本低于6.2,则必须使用sonar.jacoco.reportPath
(不含s)。
我认为通配符不被接受,因此如果exec位于Module / build / jacoco / test.exec路径下,则参数应为:sonar.jacoco.reportPath=build/jacoco/test.exec
答案 1 :(得分:0)
如果您使用Gradle构建,则应Analyze with Gradle。具体来说,不需要sonar-project.properties
文件。相反,您可以在build.gradle
中配置SonarQube插件,其中大部分应该正常工作。