Mocha.js 與 Babel 7 的組合

之前的一段時間,為了單元測試的結果最接近實際結果,因此希望能夠與産品一樣在瀏覽器內進行,
因此使用 Karma.js 搭配 chrome 下執行,運作的時候會多一個作為測試的 chrome 瀏覽器。

後來覺得,既使使用 chrome 來測試,也不能代表在 IE, Safari, FireFox 下都能絕對正確地運作,
單元測試主要針對資料處理、數值運算的檢查,跑在同樣以 V8 引擎為基底的 Node.js 上應該沒太多差別。
就算小部分的不同,與少開啟一個瀏覽器所增加的測試效率相比,在 Node.js 下測試比較有利。

藉由將專案的 Babel 版本升級到 7,重新串接單元測試的流程,並將過程記錄下來。

閱讀全文〈Mocha.js 與 Babel 7 的組合〉

取代該行文字的資料

如果只是單純要取代,去掉一行的資料。可以使用 tr 指令,
這樣就不需要使用 sedawk ,花費許多時間在測試正規表示式。

工作上遇到一個需求,需要取出 node.js 專案中 package.json 裡特定模組的名稱,
這裡把需求改為要知道所有的 babel 模組名稱,利用管線,可以串成一行來得到結果。

閱讀全文〈取代該行文字的資料〉

快速截出對應表裡的資料

在實作 CI 流程中,有一段使用 shell script 實作的地方,
需要承接流程開始時傳入的環境變數,由對應表中找到對應的資料,以進行相關的流程。

本來以為需要使用的正規表示式來完成這個功能,但偏偏卡在不知怎麼下搜尋關鍵字,
找到由正規則表示取出某段資料,放到變數裡的程式寫法。
一度在評估是不是要去研究 awk 或 sed 的文件,但又隱隱覺得殺雞不該用牛刀。

好在過了一會兒,讓我找到用更基本指令完成工作的方法。

閱讀全文〈快速截出對應表裡的資料〉

Python 的四捨五入

最近在學習 Python 程式,練習中偶而發現這件事。

在練習 NumPy 的時候,執行下面程式,發現結果不如自己預期。

import numpy as np
ary = np.array([ 5, 10, 15, 20, 25 ])
print(np.around(ary, -1))
# [ 0 10 20 20 20]

一般對於 round 解釋,是 四捨五入 ,不過在上面的程式中,最後一個位數 25 四捨五入到十位數的結果,卻是 20 而不是預想中會進位變為 30

閱讀全文〈Python 的四捨五入〉