使用 jscoverage 計算 Node.js 程式覆蓋率
在之前的文章使用 mocha 在 Node.js 和瀏覽器環境中單元測試提到如何進行測試,而我們還可以利用工具去進一步計算測試所涵蓋的範圍。 由於之前採用 mocha 作為測試的 Framework,所以這篇文章選擇可以和 mocha 搭配使用的 jscoverage。 在開始之前請先參考之前的文章轉寫好單元測試。 加入jscoverage套件1npm install jscoverage --save-dev (註:安裝到全域會把別人的函式庫也計算進去,所以採用每個專案都安裝) 設定忽略清單有些檔案或資料夾我們不想列入計算,我們可以將清單加入忽略,在專案底下建立 .covignore 檔案,寫入: 12/tests/node_modules/ 這個範例將測試程式放在 tests 而我們不想將它列入計算,所以將該目錄排除,請依據實際情況設定 執行測試之後我們就可以透過以下指令進行測試並計算覆蓋率 1mocha tests/node-test.js -r jscoverage 可以發現就是之前的測試指令多加上 -r jscoverage 的參數。 同樣的我們也可以把它寫到 pack ...
在 Github 上使用 Travis CI 進行持續整合 - Node.js
Travis CI 是一個提供 GitHub 專案持續整合的服務平台,支援各種程式語言,本篇介紹 JavaScript(Node.js) 專案如何結合此服務。 藉由整合 Travis CI,之後只要更新專案到 GitHub 就會自動進行測試,並通知你測試結果。 GitHub 專案啟用 Travis 功能Travis CI 可以直接使用 GitHub 帳號登入,登入後可以點自己的帳號看到自己有的專案 點擊右邊的開關即可啟用。 加入 .travis.yml 檔案在專案中加入 .travis.yml 的檔案,描述專案如何進行 CI 流程,以及測試的環境等資訊,依據不同的程式語言會有不同的選項可以設定。 Travis CI 的流程如下: 從 GitHub 下載專案 (clone)。 進入資料夾。 Checkout 到特定的版本。 執行 before_install。 執行 install。 執行 before_script。 執行 script。 執行 after_success 或 after_failure。 執行 after_script。 其中 install 階段,node.js ...
使用 mocha 在 Node.js 和瀏覽器環境中單元測試
Mocha 是一套 JavaScript 的測試框架 (Test Framework),有 Node.js 和瀏覽器版本,可分別測試不同環境。 假設我們開發了一個 JavaScript 套件,我們希望可以在 Node.js 和不同瀏覽器上測試,可以用以下方法來達成。 輸出至 module 或是 window在自己開發的 JavaScript 中,最後將程式依據環境輸出 module 或是全域變數,以下皆以 js-md5 為範例 12345678;(function (root, undefined) { // ... if (typeof(module) !== 'undefined') { module.exports = md5; } else if(root) { root.md5 = md5; }}(this)); 建立測試網頁建立測試網頁,例如 tests/index.html,內容需包含以下項目(要注意順序): 12345678910111213141516171 ...
在 JavaScript 中使用 Base64 Encode / Decode
在較新的瀏覽器中已經有提供 btoa 和 atob 兩個全域函式,可以用來做 base64 的 encode 和 decode,瀏覽器支援參考這裡,基本上就是 IE9 以下不支援,使用方法如下: 12btoa('Hello, world'); // "SGVsbG8sIHdvcmxk"atob('SGVsbG8sIHdvcmxk'); // "Hello, world" 但是內建的函式不支援 UTF8 的編碼: 1btoa('中文'); // DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range. 而另外在 Node.js 中則可使用內建的 buffer 模組,它也可以支援 UTF8: 12345var Buffer = require('b ...
jQuery 教學 - 常用函式
核心 (Core)$(something)依據參數產生或取得 jQuery 物件 $(selector)依據 selector 規則取得 Elements,例如 1$('#my-element') $(element)將原生的 DOM 物件轉為 jQuery 物件,例如 12var element = document.getElementById('my-element');element = $(element); $(html)建立 Element,例如 1$('<div>Test</div>'); 選擇器 (Selectors)jQuery 除了可以利用 CSS 選擇器的規則找到網頁元素,還可以用其他特別的規則選取,這邊只介紹最常用的標準 CSS 選擇器規則。 ID選擇器 (ID Selector)使用井號 (#) 開頭。 1$('#my-id') 對應到 HTML 1<div id="my-id">This is id selecto ...
新北旅遊景點 - 菁桐和猴硐
拍攝時間:2014 年 6 月 1 日 趁著端午連假出去逛逛,騎機車走小路,再沿著雙青公路一路過去。 沿途經過石碇、菁桐、平溪再到十分,最後在十分坐火車到猴硐。 首先在南港往石碇的小路上,經過台北找茶園,就停下來進去逛逛 裡面有池塘和一些蓮花,練習拍幾張 由於我們早上九點多就到了,室內設施十點才開,所以就離開了 沿途山路的風景 首先到了菁桐車站,這一帶的特色就是可以走到鐵道上 這邊的警察局蓋得也有些特色 菁桐車站 這邊有個礦業生活館,展示一些相關的文物 這是建築物的正面,可以看到墻上有一些藤蔓纏繞 來到背面會看到整片滿滿的被覆蓋住 這邊的一個特色是,在竹筒上寫下心願 可以看到挂了很多 平溪就會想到天燈,很多人會在十分這邊的鐵道上放天燈 中午在平溪和十分這邊吃些小吃作午餐之後,就坐火車到後猴硐貓村 除了貓之外先拍攝一下風景 這邊會看到很多的貓和餵貓的人 白天大部分的貓都在睡覺的樣子 懶貓二號 好像很睏的樣子 在看什麼呢 有人養的貓,特別尊貴 路邊的攤販上擺了一隻招財貓 在這裡,狗只能做背景 由於來的路上都沒有加油站,回程的時候只好往深坑的方向去,順便逛一下深坑老街 深坑老街也 ...
澳門 - 三天兩夜自由行
拍攝時間:2014 年 7 月 25 日 朋友為了在教召期間『碰巧』出國旅行,計劃了這次澳門行。 由於事出突然,臨時找我一起去,沒有做太多準備。不過為期只有三天的國外旅行,又是澳門小地方,所以應該不會有太大的問題。 雖然我們住的旅館位於半島,但由於機場位於氹仔島,所以我們計劃第一天就先走氹仔島的行程。 首先我們先搭乘威尼斯人的免費接駁車到威尼斯人酒店,因為這裡有專門的行李寄放處可以免費寄放行李,就不用帶著行李跑行程了。 不愧是高級酒店兼賭場,內部建造的相當華麗,這是條通往賭場的走道,多少人踏上這條不歸路… 由於我們到達的時間是中午,所以原定計劃是先去官也街吃午餐,必須穿過賭場才能過去。 前往官也街的路上會經過一段在戶外的自動步道,還蠻奇特的。 再走一段下坡,這邊可以看到一些歐式建築。 我們直接來到朋友在網路上找的餐廳『小飛象』,我們點了雙人套餐,怎麼我的湯看起來料比較少? 葡國雞,還蠻好吃的,葡萄牙的料理嗎 這個牛肉也不錯,好像是牛腱還是什麼部位,不會說太老或太硬咬不動 最後是炒飯,味道都還不錯,可惜的是太貴了~一個人要吃 200 塊左右澳門幣 官也街這邊有一些店家可以買伴手禮什麼 ...
Ruby on Rails 部署到 Heroku
簡介本篇文章說明如何將開發好的 Rails 網站程式部署到 Heroku 平台上,並包含 Production 與 Staging 兩種環境。 環境Mac OSRails 4Git: 假設 repo 裡面已有兩個 branch: production 和 staging,分別部署至 production 與 staging 兩種環境 步驟申請 Heroku 帳號先到 Heroku 申請賬號 安裝 Heroku toolbelt接著到這裡下載安裝 Heroku toolbelt 登入 Heroku開啓終端機輸入 1heroku login 並輸入帳號密碼完成登入 建立 SSH key1ssh-keygen -t rsa 都按 Enter 直接用預設值即可 加入 SSH key1heroku keys:add 複製環境設定進入專案目錄下執行 1cp config/environments/production.rb config/environments/staging.rb 設定 databasee.yml編輯 config/databasee.yml,設定如下 123 ...
Markdown 語法 (README.md)
有使用過 GitHub 可能會看過 README.md 或者其他 xxx.md 的檔案,md 表示的意思其實是 Markdown,所以如果有在開發 open source project 的人可能會需要知道 Markdown 文件如何撰寫。 基本上 Markdown 可以用比較簡單的方式撰寫,自動產生出一些網頁語法。而 Markdown 除了最原始版本的定義之外,後來也有一些擴充功能,例如 Table 和 Syntax Highlighting 等。 這邊整合了一份在 GitHub 可用的 Markdown 語法說明與範例:Markdown 範例 在上面的網址裡直接在 GitHub 建立 Repository 撰寫 README.md,可以實際看到語法產生的結果。 參考資料 Markdown Syntax 中文版 GitHub 文件
免費獲得比特幣
提供一些免費獲得比特幣的網站,每個網站獲得的條件和時間限制都不太一樣 The Free bitcoins.com 每半小時領取 領取方式:輸入驗證碼 可在 CoinBox.Me 查訊累積金額 必須在 CoinBox.Me 累積 0.000055 BTC 以上才能匯出 Virtual Faucet 每半小時領取 領取方式:輸入驗證碼 可在 CoinBox.Me 查訊累積金額 必須在 CoinBox.Me 累積 0.000055 BTC 以上才能匯出 SrBitcoin.com 每半小時領取 領取方式:回答問題 可在 CoinBox.Me 查訊累積金額 必須在 CoinBox.Me 累積 0.000055 BTC 以上才能匯出 BTC4You 每半小時領取 領取方式:輸入驗證碼 可在 CoinBox.Me 查訊累積金額 必須在 CoinBox.Me 累積 0.000055 BTC 以上才能匯出 RawBitcoins.com 每半小時領取 領取方式:輸入驗證碼 可在 CoinBox.Me 查訊累積金額 必須在 CoinBox.Me 累積 0.000055 BTC 以上才能匯出 C ...






