星期二, 10月 11, 2016

SonarQube Analysis Fail?

我都是透過 Jenkins 向 Subversion 取得原始碼,再送給 SonarQube 分析,但有的專案順利,有的就不行,錯誤訊息像是:


關鍵在於 Jenkins 當然會有 Subversion 的帳密(用以取原始碼),但 SonarQube 也要?那是用來 blame 作者的。在 SonarQube 如此設定就能解決:


回頭再看那些順利的,歸納出一個差異:要不就是非 Subversion 的 VCS,要不就是帳號在 LDAP。結論:若是 Subversion 上的特殊帳號才會有此問題。

星期五, 9月 30, 2016

Jenkins Cobertura Report Missing?

很久以前好不容易在 Jenkins 弄出來的 Cobertura 測試涵蓋度報表,最近再看竟然只剩頁框了?原來是因為 Content Security Policy 的緣故,要在啟動時加一個參數來避免:
  • java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war
如果光講這個方法就不好玩了,另一個有趣的是「Manage Jenkins -> Script Console」,這裡的指令即下即行。因為測試涵蓋度報表結構上與 Java Doc 類似,所以這樣的命令也能讓報表重現:
  • System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "sandbox; default-src 'none'; img-src 'self'; style-src 'self';") // default
  • System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'none'; img-src 'self'; style-src 'self'; child-src 'self'; frame-src 'self';") // for JavaDoc, may be working or not
  • System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "") // work if no cache
  • System.getProperty("hudson.model.DirectoryBrowserSupport.CSP") // check

星期五, 9月 23, 2016

"top" in docker container - TERM environment variable not set

在 docker 裡竟然不能用 top 觀察資源的使用情況?執行這個命令之後就好了(參考這篇):
  • export TERM=xterm

星期二, 9月 06, 2016

移植 NUnit + Selenium BDD 測試案例到 Linux 上執行

首先準備乾淨的 Linux,這次用的是 OSBoxes 的 CentOS 7。當 VM 開起來之後,要手動啟用網路、讓它自動抓時區並對時,然後檢查 Firefox 的版本,ESR 38.3 太舊了,這樣更新:
  • sudo yum install -y firefox
升級到 ESR 45.3 之後,到 Selenium 下載 geckodriver,解壓後執行,再檢查是否有程式在聆聽 4444 埠?
  • netstat -tunlp | grep 4444
若有就對了。幸好 Mono 官網近來也提供 CentOS 的支援,這裡說明非常清楚,先加入金鑰與儲存庫,再安裝 mono-devel:
  • sudo yum install yum-utils
  • sudo rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
  • sudo yum-config-manager --add-repo http://download.mono-project.com/repo/centos/
  • sudo yum-install -y mono-devel
NUnit 也只是從官網下載解壓,至此萬事俱備。我的測試專案若要使用本機的瀏覽器,需如下設定:
  • RemoteWebDriverUri: http://localhost:4444
設定修改後需要重新編譯:
  • xbuild BehaviorTestSkeleton.sln
在命令列執行:
  • mono nunit3-console.exe BehaviorTestSkeleton.dll

星期二, 8月 30, 2016

Nginx on CentOS 5/6/7

之前在 Windows 裝過 Nginx,這次是 CentOS。
  • Install
    • 建立 /etc/yum.repos.d/nginx.repo 文字檔,內容如下:
      • [nginx]
      • name=nginx repo
      • baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
      • gpgcheck=0
      • enabled=1
    • 注意上述的 $releasever 要換成 CentOS 的版本號,可以是 5、6 或是 7
    • 執行 sudo yum install nginx
    • 官網原文在
  • Start as a service
    • sudo service nginx start
  • Test
    • curl http://localhost
[2018/02/05]
也可以先裝 EPEL 就好:
  • sudo yum install epel-release
  • sudo yum install nginx

星期五, 8月 26, 2016

GitLab 8.x Upgrade

系統升級本是一件大事,理論上流程應該是「備份、下載、升級、重啟、成功或還原」,但在我所處的困苦環境,想備份都沒有硬碟空間,所以只好冒著失敗的風險直接升(當然還是有整機還原這條後路),只要三個步驟,大約三分鐘:
  • sudo yum install gitlab-ce
  • gitlab-ctl reconfigure
  • gitlab-ctl restart

星期四, 8月 04, 2016

第一次看到微軟的 Docker Images

雖然 Docker 官網已默默地「有了」微軟的產品(其實是作者後知後覺?),但介紹文出爐還不到一個月。對於最低消費還要近 10GB 感到還有進步空間。有圖為證: