小编Sun*_*nil的帖子

使用jstestdriver将javascript xml junit tests导入SONAR失败

我在做什么? 我目前正在为前端应用程序设置持续集成/交付管道.我们计划使用SonarQube作为代码质量工具,并希望在SONAR中导入junit测试结果/代码覆盖率以进行进一步分析.

我能够成功地将javascript代码覆盖率报告导入SONAR.我们正在使用Gulp/Karma/PhantomJS/Jasmine等,并使用Karma coverage/Junit记者生成测试结果.Junit测试文件名是TEST-xunit.xml.

我被困在哪里? 我需要您的帮助/专家指导,将Javascript测试结果导入SONAR.我尝试了不同的东西,但不知何故无法将单元测试源/结果导入SONAR.

我有什么尝试过的? 之前我们使用的是SONAR Runner 2.3,SONAR Qube 4.5/Javascript插件2.2并且能够导入Junit高级别统计数据,例如测试通过/失败等.但是,我们无法导航到单个测试以查看哪个测试通过/失败.

在进一步研究时,注意到如果找不到测试源,Javascript插件2.3为场景添加了更多消息.此外,还有一些其他依赖项,因此将SONAR qube升级到5.0.使用SONAR runner 2.4测试并观察以下消息.目前,高级别的统计数据也没有被导入.

JSTestDriverSensor.java 代码来自github上的SONAR Javascript插件

LOG.warn("Test result will not be saved for test class \"{}\", because SonarQube associated resource has not been found using file name: \"{}\"",
    getUnitTestClassName(classKey), getUnitTestFileName(classKey));
Run Code Online (Sandbox Code Playgroud)

由SONAR gulp插件生成的sonar-runner.properties(使用SONAR Runner 2.3)

sonar.projectBaseDir=C:/xxxxx/homepage2
sonar.host.url=http://xxxxx:9000/sonarqube/
sonar.jdbc.url=jdbc:mysql:// xxxxx:3306/sonar
sonar.jdbc.username= xxxxx
sonar.jdbc.password= xxxxx
sonar.projectKey=homepage:0.0.0
sonar.projectName=homepage
sonar.projectVersion=0.0.0
sonar.sources=src/app,src/components
sonar.exclusions=src/**/*spec.js
sonar.tests=test
sonar.language=js
sonar.sourceEncoding=UTF-8
sonar.javascript.lcov.reportPath=reports/coverage/lcov.info
sonar.javascript.jstestdriver.reportsPath=reports/unit
Run Code Online (Sandbox Code Playgroud)

我甚至尝试过单独的SONAR runner 2.4安装,但不断收到相同的错误消息.

题? 1.必须有一些我忽略的东西,不知何故无法确定导致这种情况的原因.我想我要么设置测试目录路径错误,要么JSTestDriverSensor错误地解释测试目录文件.建议?2.首先,我只想导入一个示例junit xml文件,以查看它是否成功导入.之后,我可以修改karma junit generator输出以匹配输入junit xml.这里需要一些参考例子.

附上一些日志.我修改了junit xml来设置不同的类名,以查看JsTestDriverSensor是否找到它.但事实并非如此!

[23:31:24] 23:31:24.122 DEBUG …
Run Code Online (Sandbox Code Playgroud)

sonar-runner sonarqube sonarqube-5.0

13
推荐指数
1
解决办法
4100
查看次数

标签 统计

sonar-runner ×1

sonarqube ×1

sonarqube-5.0 ×1