我已经设置了我们的CI工具(Teamcity),以便每次在Github中进行拉取请求时运行项目的SonarQube预览分析.为了测试一切正常,我在提交拉取请求之前向代码库添加了一些问题.预览分析运行时没有任何问题,并且拉取请求随着摘要中的更新而更新:
" sonarqube - SonarQube报道没有问题 "
问题是我在代码库中引入的新问题都没有写成拉取请求的内联注释.
我第二次运行预览分析,将sonar.verbose属性设置为true,将日志级别设置为DEBUG.
我用来从Teamcity使用MSBuild Runner执行分析的命令如下:
MSBuild.SonarQube.Runner.exe begin /k:<project_key> /n:"<project_name>" /v:%build.number% /d:sonar.analysis.mode=preview /d:sonar.github.oauth="<personal_access_token>" /d:sonar.github.pullRequest="<hard_coded_PR_no>" /d:sonar.github.repository="<organization>/<repo_name>" /d:sonar.issuesReport.console.enable=true /d:sonar.verbose=true
Run Code Online (Sandbox Code Playgroud)
当分析运行时,我可以从日志中看到SonarQube正在拾取问题(参见下面的日志).因此,似乎后期作业Github Pull Request Issue Publisher存在问题.以下是日志的摘录:
Working dir: D:\BuildAgent\work\<some_hash>\.sonarqube\out\.sonar
[08:57:01][Step 8/11] INFO: Source encoding: UTF-8, default locale: en_US
[08:57:01][Step 8/11] INFO: Sensor XmlFileSensor
[08:57:01][Step 8/11] INFO: Sensor XmlFileSensor (done) | time=0ms
[08:57:01][Step 8/11] INFO: Load server issues
[08:57:01][Step 8/11] INFO: Load server issues (done) | time=117ms
[08:57:01][Step 8/11] INFO: Performing issue tracking
[08:57:01][Step 8/11] …Run Code Online (Sandbox Code Playgroud) Visual Studio 2013 具有允许在 SSDT 项目和目标数据库之间执行数据比较的功能。
考虑到这些要求,我想做这样的事情作为我们构建和部署过程的一部分:
目前,我有一个脚本来处理子弹号。1 通过使用 DACPAC 通过sqlpackage.exe进行模式比较。不过,似乎无法使用 sqlpackage 执行数据比较,而且我还没有找到任何其他替代方案。在 VS 2010 中,可以通过命令窗口运行数据比较,但我在 VS 2013 中没有看到任何关于此的文档......
因此,我的问题是是否存在允许通过例如 Powershell 脚本以编程方式运行数据比较的 API 和/或其他工具。